home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / INTER52D.ZIP / INTERRUP.N < prev    next >
Text File  |  1996-10-20  |  299KB  |  8,290 lines

  1. Interrupt List, part 14 of 15
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  3. --------V-6D---------------------------------
  4. INT 6D - VIDEO - many VGA - VIDEO BIOS ENTRY POINT
  5. Desc:    points at the original INT 10 entry point set up by the VGA BIOS
  6. Notes:    used by IBM, ATI VGA Wonder, Paradise, Video7, and NCR, and many others
  7.     the Diamond Stealth64 BIOS uses this vector to store the INT 42 vector
  8.        of the inactive video (see INT 10/AH=12h/BL=35h)
  9. SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh,INT 10/AH=12h
  10. --------V-6D---------------------------------
  11. INT 6D - Trident SVGA - VIDEO BIOS HANDLER
  12. Note:    the BIOS INT 10 handler on various Trident VGA cards consists merely
  13.       of a call to INT 6D followed by an IRET.
  14. --------N-6D---------------------------------
  15. INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
  16.     AH = function
  17.     ???
  18. Return: ???
  19. Note:    the installation check consists of testing for a signature area
  20.       immediately preceding the interrupt handler (see #2983)
  21. SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
  22. Index:    installation check;DECnet DOS Data Link Layer
  23.  
  24. Format of DECnet DOS signature area:
  25. Offset    Size    Description    (Table 2983)
  26.  -5    BYTE    major version number
  27.  -4    BYTE    minor version number
  28.  -3   3 BYTEs    signature (ASCII "DLL")
  29. --------h-6D---------------------------------
  30. INT 6D C - HP Vectra AT - IRQ21 - RESERVED HARDWARE INTERRUPT
  31. SeeAlso: INT 0D"IRQ5",INT 6C"HP Vectra",INT 6E"HP Vectra"
  32. --------V-6DBD60-----------------------------
  33. INT 6D U - Matrox Multiple Monitor Support v1.0 - ???
  34.     AX = BD60h
  35.     DS:SI -> buffer containing ??? (see #2984)
  36.     ???
  37. Return: AX = 00BDh if function executed
  38.        ???:SI -> 22-byte buffer (inside TSR) filled with ??? (see #2984)
  39.     AX unchanged if function disabled
  40. Note:    this function is a NOP if AX=BD6Fh/BL=01h was called
  41. SeeAlso: AX=BD61h,AX=BD6Fh,AX=BDFFh
  42.  
  43. Format of Matrox ??? buffer:
  44. Offset    Size    Description    (Table 2984)
  45.  00h  4 BYTEs    ???
  46.  04h    WORD    video mode width in pixels
  47.  06h    WORD    video mode height in pixels
  48.  08h    BYTE    ???
  49.  09h    BYTE    ???
  50.  0Ah    BYTE    ???
  51.  0Bh    BYTE    flags
  52.         bit 1: ???
  53.         bit 4: ??? (corresponds to bit 14 for AX=BD61h)
  54.         bit 5: ??? (corresponds to bit 15 for AX=BD61h)
  55.  0Ch    DWORD    -> ??? buffer
  56.  10h    WORD    ???
  57.         bit 4: ??? (corresponds to bit 14 for AX=BD61h)
  58.         bit 5: ??? (corresponds to bit 15 for AX=BD61h)
  59.  12h  4 BYTEs    ???
  60. SeeAlso: #2985
  61. --------V-6DBD61-----------------------------
  62. INT 6D U - Matrox Multiple Monitor Support v1.0 - GET VIDEO MODE INFORMATION
  63.     AX = BD61h
  64.     BX = width in pixels (bits 13-0)
  65.         bit 14: ???
  66.         bit 15: ???
  67.     CX = height in pixels
  68. Return: AL = BDh if function supported
  69.         AH = status
  70.         00h successful
  71.         01h failed (resolution/flags not supported)
  72.         CX:BX -> video mode data structure (see #2985)
  73.           (first word is FFFFh if unsupported resolution)
  74.         EAX high word cleared
  75. SeeAlso: AX=BD60h,AX=BD6Fh,AX=BDFFh
  76.  
  77. Format of Matrox video mode information (VCE structure):
  78. Offset    Size    Description    (Table 2985)
  79.  00h    WORD    width in pixels
  80.  02h    WORD    height in pixels
  81.  04h    WORD    ???
  82.  06h    DWORD    dot clock frequency
  83.  0Ah 25 BYTEs    ???
  84. SeeAlso: #2984
  85. --------V-6DBD6F-----------------------------
  86. INT 6D U - Matrox Multiple Monitor Support v1.0 - INSTALLATION CHECK
  87.     AX = BD6Fh
  88.     BL = subfunction
  89.         00h installation check
  90.         01h disable TSR
  91.         02h enable TSR (see AX=BD60h)
  92. Return: AX = 00BDh if installed
  93. SeeAlso: AX=BD60h,AX=BD61h,AX=BDFFh
  94. --------V-6DBDFF-----------------------------
  95. INT 6D U - Matrox Multiple Monitor Support v1.0 - UNHOOK INTERRUPT (UNINSTALL)
  96.     AX = BDFFh
  97. Return: AX = 00BDh if supported
  98. Note:    this function revectors INT 6D without checking that it points at the
  99.       TSR, and does not release the memory occupied by the TSR
  100. SeeAlso: AX=BD60h,AX=BD61h,AX=BD6Fh
  101. --------N-6E---------------------------------
  102. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  103. Notes:    this is the main DECnet DOS access, and is described in Digital manual
  104.       AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  105.     there is a signature/data area immediately prior to the interrupt
  106.       handler which may be used as an installation check (see #2986)
  107. Index:    installation check;DECnet DOS
  108.  
  109. Format of DECnet DOS signature area:
  110. Offset    Size    Description    (Table 2986)
  111.  -5    BYTE    major version number
  112.  -4    BYTE    minor version number
  113.  -3   3 BYTEs    signature (ASCII "DNP")
  114. --------h-6E---------------------------------
  115. INT 6E C - HP Vectra AT - IRQ22 - RESERVED HARDWARE INTERRUPT
  116. SeeAlso: INT 0E"IRQ6",INT 6D"HP Vectra",INT 6F/AH=00h"HP Vectra"
  117. --------N-6F---------------------------------
  118. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  119.     AX = function
  120.         0000h enter terminal mode
  121.         Return: AX = status
  122.                 0000h no action requested
  123.                 0001h screen save
  124.         0001h reset interface and set configuration parameters
  125.         DX = bitfields
  126.             bits 2-0: model number
  127.             bits 4-3: I/O address
  128.             bits 6-5: DMA channel
  129.         Return: nothing
  130.         0002h set display parameters
  131.         DX = bitfields
  132.             bits 1-0: OIA mode
  133.             bits 4-2: monitor support
  134.         Return: nothing
  135.         0003h read status
  136.         Return: AX = status word (see #2987)
  137.         0004h read cursor position
  138.         Return: AX = cursor position
  139.         0005h get character from device buffer
  140.         DX = cursor position
  141.         Return: AH = type (00h data, 01h attribute)
  142.             AL = data or attribute character
  143.         0006h send character
  144.         DH = type (00h ASCII, 01h extended code)
  145.         DL = ASCII character or extended code
  146.         Return: nothing
  147.         0007h set timeout
  148.         DX = timeout in seconds
  149.         Return: nothing
  150.         0008h wait for location to be modified
  151.         DX = cursor position
  152.         Return: AX = status (0000h modified, nonzero timeout)
  153.         0009h NOP
  154.         000Ah restore display
  155.         Return: nothing
  156.         000Bh update device buffer
  157.         Return: AX = cursor positoin
  158.         000Ch write string to add information area
  159.         DS:DX -> string
  160.         Return: nothing
  161.         000Dh maintenance operations
  162.         DX = maintenance operation code
  163.         Return: AX = operation status
  164.         000Eh get control program version
  165.         Return: AH = release number (major version)
  166.             AL = level number (minor version)
  167.         000Fh get microcode version
  168.         Return: AH = release number (major version)
  169.             AL = level number (minor version)
  170.         0010h save or display graphics
  171.         BX = length of data buffer
  172.         CX = subfunction request code
  173.         DS:DX -> data buffer
  174.         Return: AX = return code
  175.             CX = length of PIF data
  176.         0011h perform structured field operation
  177.         CX = request number
  178.         DS:DX -> parameter list
  179.         Return: AX = status word (see #2987)
  180.             CX = error number
  181.         0012h set cursor position for direct write buffer
  182.         DX = new cursor position
  183.         Return: AX = status word (see #2987)
  184.         0013h write direct to buffer
  185.         DL = character to be written
  186.         DH = translation option
  187.         Return: AX = status word (see #2987)
  188.         0014h write direct to buffer without echo
  189.         DL = character to be written
  190.         DH = translation option
  191.         Return: AX = status word (see #2987)
  192.         0015h set direct write string length
  193.         DX = string value
  194.         Return: nothing
  195.         0016h write string direct to buffer
  196.         DS:DX -> string
  197.         Return: AX = status word (see #2987)
  198.         0017h write string direct to buffer, untranslated
  199.         DS:DX -> string
  200.         Return: AX = status word (see #2987)
  201.         0018h get direct-write cursor position
  202.         Return: AX = cursor position
  203.         0019h convert row/column to cursor position
  204.         DH = display row (1-43)
  205.         DL = display column (1-132)
  206.         Return: AX = cursor position
  207.         001Ah convert cursor position to row/column
  208.         DX = cursor position
  209.         Return: AH = display row
  210.             AL = display column
  211.         001Bh find next field
  212.         DX = initial cursor position
  213.         Return: AX = field cursor position
  214.         001Ch find previous field
  215.         DX = initial cursor position
  216.         Return: AX = field cursor position
  217.         001Dh find next unprotected field
  218.         DX = initial cursor position
  219.         Return: AX = field cursor position
  220.         001Eh find previous unprotected field
  221.         DX = initial cursor position
  222.         Return: AX = field cursor position
  223.         001Fh find next protected field
  224.         DX = initial cursor position
  225.         Return: AX = field cursor position
  226.         0020h find previous protected field
  227.         DX = initial cursor position
  228.         Return: AX = field cursor position
  229.         0021h masked search forward
  230.         DH = mask
  231.         DL = search pattern
  232.         Return: AX = cursor position or 0000h
  233.         0022h masked search backward
  234.         DH = mask
  235.         DL = search pattern
  236.         Return: AX = cursor position or 0FFFh
  237.         0023h find field length
  238.         DX = cursor position
  239.         Return: AX = field length
  240.         0024h read field
  241.         DS:DX -> buffer for field contents
  242.         Return: AX = status word (see #2987)
  243.         0025h read screen
  244.         DS:DX -> buffer for screen contents
  245.         Return: AX = status word (see #2987)
  246.         0026h read buffer untranslated
  247.         DX = cursor position
  248.         Return: AX = buffer code
  249.             CX:BX -> 3278/79 device buffer image
  250.         0027h enable/disable keyboard
  251.         DL = new state of keyboard breaks (00h enabled, 01h disabled)
  252.         Return: nothing
  253.         0028h select host session
  254.         DL = session short name
  255.         Return: AX = session information
  256.         0029h retrieve host session name
  257.         AX = short name (DFT) or 0000h (not available, CUT mode)
  258.         002Ah get current device buffer size
  259.         Return: AX = device buffer size
  260.             CX = segment of EAB
  261.         002Bh arm modified location trigger
  262.         DX = cursor position
  263.         Return: AX = status (0000h not available, 0001h successful)
  264.  
  265. Bitfields for PCOX status word:
  266. Bit(s)    Description    (Table 2987)
  267.  0,1    cursor type
  268.  2    cursor inhibited
  269.  3    display inhibited
  270.  4    feature step inhibited
  271.  5    480-character format code
  272.  6,7    unused
  273.  8-10    model number (2-5)
  274.  11    unit has been reset by controller (cleared after status returned)
  275.  12    buffer has been written into (cleared after status returned)
  276.  13    alarm has been sounded (cleared after status returned)
  277.  14-15    monitor type (01 mono, 10 color, 11 hybrid)
  278. --------N-6F00-------------------------------
  279. INT 6F - 10NET - LOGIN
  280.     AH = 00h
  281.     DS:DX -> login record (see #2988)
  282. Return: CL = security level
  283.     AX = status (see #2989)
  284. SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR"
  285.  
  286. Format of 10NET login record:
  287. Offset    Size    Description    (Table 2988)
  288.  00h  8 BYTEs    user name
  289.  08h  8 BYTEs    password
  290.  10h 12 BYTEs    name of SuperStation
  291.  
  292. (Table 2989)
  293. Values for 10NET status:
  294.  0000h    successful
  295.  01FFh    "RTO_NERR" transmit interrupt lost (time out on response)
  296.  02FFh    "NET_NERR" network (hardware) error
  297.  03FFh    "PAS_NERR" invalid password
  298.  04FFh    "LRN_NERR" local resource not available
  299.  05FFh    "SRN_NERR" server resource not available
  300.  06FFh    "LNM_NERR" already logged in under different name
  301.  07FFh    "LSF_NERR" login security failure (node)
  302.  08FFh    "NLI_NERR" not logged in
  303.  09FFh    "DIVZ_NERR" position calc error
  304.  0AFFh    "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write)
  305.  0BFFh    "RFNC_NERR" request function not in range
  306.  0CFFh    "NSFH_NERR" no more server file handle entries left
  307.  0DFFh    "NFTAB_NERR" no more shared file table entries left
  308.  0EFFh    "NUFH_NERR" no more user file handle entries left
  309.  0FFFh    "CHAT_NERR" chat permit not on
  310.  10FFh    "NSRV_NERR" not a server on request
  311.  11FFh    "NOBD_NERR" no transporter board error
  312.  12FFh    "STO_NERR" time out on send
  313.  13FFh    "INF_NERR" item not found (spool item not on queue)
  314.  14FFh    "DACS_NERR" DOS access incompatible
  315.  15FFh    "RLOCK_NERR" record already locked
  316.  16FFh    "IVP_NERR" invalid parameter
  317.  17FFh    "RLTO_NERR" record lock time out error
  318.  18FFh    "CSPL_NERR" currently spooling to named device
  319.  19FFh    "DRP_NERR" dropped receive message (throttle)
  320.  1AFFh    "SOPV_NERR" open sharing violation
  321.  1BFFh    "NTUF_NERR" no more tuf entries left
  322.  1CFFh    "NOWN_NERR" not file owner on open
  323.  1DFFh    "RSEC_NERR" read security not passed
  324.  1EFFh    "WSEC_NERR" write security not passed
  325.  1FFFh    "GSEC_NERR" group security not passed
  326.  20FFh    "SEC1_NERR" security file failure
  327.  21FFh    "ACT1_NERR" activity file failure
  328.  22FFh    "SPL1_NERR" spool control file failure
  329.  23FFh    "NMT_NERR" device not mounted (spooling)
  330.  24FFh    "RSPL_NERR" spool file has not been terminated
  331.  25FFh    "DNSH_NERR" device not mounted or is not being shared
  332.  26FFh    "DUP_NERR" duplicate node ID
  333.  27FFh    "FNF_NERR" file not found error
  334.  28FFh    "NMF_NERR" no more files
  335.  29FFh    "UN_NERR" unknown internal system error
  336.  2AFFh    "QCP_NERR" print queue is full or corrupted
  337.  2BFFh    "IFNC_NERR" invalid function
  338.  2CFFh    "IVH_NERR" invalid handle
  339.  2DFFh    "TOF_NERR" too many files opened
  340.  2EFFh    "PNF_NERR" path not found
  341.  2FFFh    "SACT_NERR" named file is active
  342. ---10NET v5.0+ ---
  343.  30FFh    "NAK_NERR" received NAK on send (destination out of buffers)
  344.  31FFh    "RENT_NERR" reentrancy in driver F_SEND
  345.  32FFh    "RECV_NERR" driver could not be put in receive mode
  346.  33FFh    "NRLT_NERR" no more RLTAB entries left
  347.  34FFh    "DIAL_NERR" function requires an unsupported dialect
  348.  35FFh    "IVD_NERR" invalid device
  349.  36FFh    "NALV_NERR" netname access level violated
  350.  37FFh    "NPIDNF_NERR" network path not found
  351.  38FFh    "SP_NERR" server is paused
  352.  39FFh    "TMNM_NERR" too many remote user names
  353.  3AFFh    "DUPD_NERR" duplicate network device
  354.  3BFFh    "DIU_NERR" shared device in use, can't delete
  355.  3CFFh    "NNWD_NERR" network name was deleted
  356.  3DFFh    "NPFS_NERR" not enough space for print file
  357.  3EFFh    "NNNF_NERR" network name not found (can't find the call name)
  358.  3FFFh    "NB_NERR" network busy
  359.  40FFh    "NDNLE_NERR" network device no longer exists
  360.  41FFh    "NBCLE_NERR" NetBIOS command limit exceeded
  361.  42FFh    "FINT24_NERR" Fail on INT 24h
  362.  43FFh    "PEXP_NERR" password expired
  363.  44FFh    "NPUP_NERR" new password error
  364.  45FFh    "MAXS_NERR" maximum allowed disk space exceeded
  365.  46FFh    "TDOW_NERR" time-of-day/day-of-week error
  366. SeeAlso: #3016
  367. Index:    error codes;10Net|10Net;error codes
  368. --------b-6F00-------------------------------
  369. INT 6F - HP Vectra EX-BIOS - "F_ISR" (internal) - RESPOND TO LOGICAL ISR
  370.     AH = 00h
  371.     BP = ID for driver (see #2990)
  372.     DH = data type (see #2991)
  373.     DL = physical device driver's index (driver ID / 6)
  374.     BX,CX = data
  375.     ES:0000h -> physical device's Describe Record (see #2998)
  376.     ---keypress event data---
  377.         BH = keyboard state (only if bit 5 of DH set) (see #2992)
  378.         BL = scancode (if bit 4 of DH clear)
  379.         CX = number of scancodes in list (if bit 4 of DH set)
  380.         ES:SI -> scancode list (if bit 4 of DH set)
  381.     ---motion event data---
  382.         BX = new X position (abs device) or X increment (relative device)
  383.         CX = new Y position (abs device) or Y increment (relative device)
  384.     ---button event data
  385.         BL = button information
  386.         bits 15-8 reserved
  387.         bit 7: button state (0 = down, 1 = up)
  388.         bits 6-0: button number (0-7)
  389.         BH = reserved
  390. Return: AH = status (see #2993)
  391.     BP,DS destroyed
  392.     ---if device is keyboard translator---
  393.         BL = translated scancode
  394.         BH = new keyboard state (if DH bit 5 set) (see #2992)
  395.         DH = new scancode type (see #2991)
  396. Notes:    INT 6F corresponds to IRQ23 on the original HP Vectra AT, which is
  397.       unavailable because of its use as a BIOS extension software interrupt
  398.     the INT 6F handler consists of an instruction to load DS with the
  399.       driver's data segment followed by an indexed far jump using BP to
  400.       select the destination vector; since the interrupt handler is
  401.       located immediately following the dispatch table, the HP_VECTOR_TABLE
  402.       may be found by looking at offset 0000h in the INT 6F segment, and
  403.       its size is equal to the offset of the interrupt handler
  404.     each entry in the HP_VECTOR table consists of a DWORD for the driver's
  405.       entry point address and a WORD for the driver's data segment
  406.     this function is not user-callable, as it is a response to a physical
  407.       event, and assumes that the caller has already handled the physical
  408.       interrupt and updated the Describe Record (see #2998) to reflect
  409.       the event
  410. SeeAlso: INT 6C"HP Vectra",INT 6F/AH=02h"HP Vectra"
  411.  
  412. (Table 2990)
  413. Values for HP Vectra EX-BIOS driver ID:
  414.  0000h    V_SCOPY (null driver, but DS value points at system copyright string)
  415.  0006h    V_DOLITTLE (null driver)
  416.  000Ch    V_PNULL (null driver)
  417.  0012h    V_SYSTEM
  418.  0018h    reserved
  419.  001Eh    V_S8259
  420.  0024h    reserved
  421.  002Ah    V_SINPUT
  422.  0030h    reserved
  423.  0036h    V_QWERTY (keyboard translator)
  424.  003Ch    V_SOFTKEY (keyboard translator)
  425.  0042h    V_FUNCTION (keyboard translator)
  426.  0048h    V_NUMPAD (keyboard translator)
  427.  004Eh    V_CCP (keyboard translator)
  428.  0054h    V_SVIDEO
  429.  005Ah    V_STRACK
  430.  0060h    V_EVENT_TOUCH
  431.  0066h    V_EVENT_TABLET
  432.  006Ch    V_EVENT_POINTER
  433.  0072h    reserved
  434.  0078h    reserved
  435.  007Eh    reserved
  436.  0084h    reserved
  437.  008Ah    V_CCPCUR (keyboard translator)
  438.  0090h    V_RAW (keyboard translator)
  439.  0096h    V_CCPNUM (keyboard translator)
  440.  009Ch    V_OFF (keyboard translator)
  441.  00A2h    V_CCPGID (translator: cursor control pad keys to GID data)
  442.  00A8h    V_SKEY2FKEY (keyboard translator)
  443.  00AEh    V_8041
  444.  00B4h    V_PGID_CCP
  445.  00BAh    C_LTABLET
  446.  00C0h    V_LPOINTER (pointing device: mouse, etc.)
  447.  00C6h    V_LTOUCH (touch screen)
  448.  00CCh    V_LHPMOUSE
  449.  00D2h    ???
  450.  ...
  451.  0102h    ???
  452.  0108h    V_LNULL
  453.  010Eh    reserved
  454.  0114h    V_HPHIL
  455.  011Ah-01C2h reserved
  456.  016Eh    V_SCANDOOR (scancode management chip driver) (ES/QS/RS only)
  457.  01C8h-0228h available
  458.  
  459. (Table 2991)
  460. Values for HP Vectra EX-BIOS ISR data type:
  461.  00h    reserved "T_KC_R0"
  462.  01h    reserved "T_KC_R1"
  463.  02h    ASCII data
  464.  03h    reserved "T_KC_R3"
  465.  04h    HP150 keyboard (ITF) scancode
  466.  05h    reserved "T_KC_R5"
  467.  06h    device-definable type
  468.  07h    HP Vectra keyboard set
  469.  08h    IBM AT scancode set
  470.  09h    button data
  471.  0Ah    IBM PC scancode set
  472.  0Bh    Softkey keypad (F1-F8)
  473.  0Ch    function key keypad (F1-F10)
  474.  0Dh    HP Cursor Control Pad keypad
  475.  0Eh    Qwerty keypad
  476.  0Fh    Numeric keypad
  477.  1xh    bit 4 set: string of CX scancode of type 0xh at ES:SI
  478.  2xh    bit 5 set: BH contains current keyboard state
  479.  40h    signed 8-bit relative data
  480.  41h    signed 16-bit relative data
  481.  42h    unsigned 8-bit absolute data
  482.  43h    unsigned 16-bit absolute data
  483.  45h    specially-formed data (80x25) generated by V_LTOUCH
  484.  46h    specially-formed data (640x200) generated by V_LTABLET
  485.  47h    specially-formed data (640x200) generated by V_LPOINTER
  486.  
  487. Bitfields for HP Vectra EX-BIOS keyboard state:
  488. Bit(s)    Description    (Table 2992)
  489.  0    Alt pressed
  490.  1    Left Shift pressed
  491.  2    Right Shift pressed
  492.  3    Ctrl pressed
  493.  4    CapsLock active
  494.  5    NumLock active
  495.  6    Right unlabeled key pressed (some international keyboards)
  496.  7    Left unlabeled key pressed (some international keyboards)
  497. SeeAlso: #0481
  498.  
  499. (Table 2993)
  500. Values for HP Vectra EX-BIOS status:
  501.  00h    successful
  502.  02h    unsupported function
  503.  04h    not serviced
  504.  06h    done (no further processing should be performed on the ISR event)
  505.  F2h    device is out of paper
  506.  F4h    device is offline
  507.  F6h    no more space for more drivers
  508.  F8h    driver is busy
  509.  FAh    bad parameter
  510.  FEh    operation failed
  511. Note:    status codes are always even; negative values (>= 80h) indicate errors
  512.       while positive values indicate exceptional conditions
  513.  
  514. Format of HP EX-BIOS driver header data:
  515. Offset    Size    Description    (Table 2994)
  516.  00h    WORD    driver attributes (see #2995)
  517.  02h    WORD    string index of driver's name
  518.  04h    WORD    driver's default logical device vector (see #2990)
  519.  06h    WORD    driver's parent class (bitset) (see #2996)
  520.  08h    WORD    driver's child class (bitset)
  521.  0Ah    WORD    driver's parent vector
  522.  0Ch    WORD    driver's child vector
  523.  0Eh    BYTE    major subaddress
  524.  0Fh    BYTE    minor subaddress
  525. Notes:    this structure is located at offset 0 in the driver's data segment,
  526.       which in turn may be read from the HP_VECTOR_TABLE (refer to note in
  527.       main entry)
  528.     only the first WORD is required, and everything from offset 6 onward
  529.       is only required if the device wishes to perform device mapping
  530. SeeAlso: #2997,#2998
  531.  
  532. Bitfields for HP EX-BIOS driver header attributes:
  533. Bit(s)    Description    (Table 2995)
  534.  15    this is a complete driver header
  535.  14    "ATR_DEVCFG" reserved
  536.  13    driver can be mapped with the parent vector at offset 0Ah
  537.  12    driver can be mapped with the child vector at offset 0Ch
  538.  11-9    driver type
  539.     000 reserved vector
  540.     001 free vector
  541.     010 EX-BIOS service
  542.     011 logical driver (mapped from parent to child)
  543.     100 mappable driver (cannot be last in driver chain)
  544.     101 mappable driver that is last in driver chain
  545.     110 input driver (mappable)
  546.     111 reserved
  547.  8    "ATR_STRING" reserved
  548.  7    call SF_START whenever driver is remapped
  549.  6-5    addressing requirements
  550.     00 no subaddresses required
  551.     01 requires major address be stored at offset 0Eh
  552.     10 requires minor address be stored at offset 0Fh
  553.     11 required major,minor, and mid addresses (minor in low nybble of
  554.           offset 0Fh, mid address in high nybble of 0Fh)
  555.  4    driver can be shared between several parent drivers
  556.  3    driver can be shared between several child drivers
  557.  2    this driver header is in ROM
  558.  1    "ATR_YIELD" reserved
  559.  0    reserved
  560. SeeAlso: #2994,#2996
  561.  
  562. Bitfields for HP EX-BIOS driver class:
  563. Bit(s)    Description    (Table 2996)
  564.  15    maps F1 to F8 softkeys
  565.  14    keyboard
  566.  13    cursor pad
  567.  12    console device
  568.  11    serial output device (may be capable of limited input)
  569.  10    "CL_COMM" reserved
  570.  9    interfaces multiple resources transparent to operating system
  571.  8    serial output device filter (can be mapped between logical and physical
  572.       driver to perform translations)
  573.  7    addressed block device
  574.  6    priority boot device
  575.  5    logical graphics input device
  576.  4    physical graphics input device (can map to child of another driver)
  577.  3    "CL_GID" can map to an event
  578.  2    physical touch device
  579.  1    reserved
  580.  0    class extension bit
  581. Note:    special values: FFFFh maps to all other devices (V_PNULL), and 0000h
  582.       maps to no other driver
  583. SeeAlso: #2994
  584.  
  585. Format of HP EX-BIOS global data area:
  586. Offset    Size    Description    (Table 2997)
  587.  00h 20 BYTEs    reserved
  588.  14h    BYTE    sound driver status
  589.  15h    BYTE    number of pending key clicks (max 4) (see AH=34h/BP=0012h)
  590.  16h    BYTE    current tick duration scaling factor
  591.  17h    BYTE    current key click volume
  592.  18h    WORD    current beep period (10 us increments) (see AH=3Ch/BP=0012h)
  593.  1Ah    WORD    current beep duration (10 us increments)
  594.  1Ch    BYTE    number of pending beep functions (max 4) (see AH=3Ah/BP=0012h)
  595.  1Dh    BYTE    reserved
  596.  1Eh    WORD    next unused string index number
  597.  20h    ...    reserved
  598. SeeAlso: #2994
  599.  
  600. Format of HP EX-BIOS Driver Describe Record:
  601. Offset    Size    Description    (Table 2998)
  602.  00h 16 BYTEs    EX-BIOS driver header data (see #2994)
  603.  10h    BYTE    device GID type
  604.         bits 7-4: device type
  605.         bits 3-0: physical device link address
  606.  11h    BYTE    physical device ID (see #3000)
  607.  12h    WORD    logical device status bits (see #2999)
  608.  14h    BYTE    physical device vector number (driver ID / 6)
  609.  15h    BYTE    maximum number of axes reported (0-2)
  610.  16h    BYTE    device class
  611.         bits 7-4: current class
  612.         bits 3-0: default class
  613.  17h    BYTE    number of buttons/prompts
  614.         bits 7-4: number of prompts
  615.         bits 3-0: number of buttons
  616.  18h    BYTE    reserved
  617.  19h    BYTE    (physical devices only) maximum output burst length
  618.  1Ah    BYTE    (physical devices only) number of write registers
  619.  1Bh    BYTE    (physical devices only) number of read registers
  620.  1Ch    BYTE    button transition flags (bit 0 = button0, etc.)
  621.  1Dh    BYTE    current button states (bit 0 = button0, etc.)
  622.  1Eh    WORD    device resolution
  623.  20h    WORD    maximum x-axis count
  624.  22h    WORD    maximum y-axis count
  625.  24h    WORD    X position data for absolute devices
  626.  26h    WORD    Y position data for absolute devices
  627.  28h    WORD    X delta for relative devices
  628.  2Ah    WORD    Y delta for relative devices
  629.  2Ch    WORD    (logical devices only) X-axis scaling accumulator
  630.         (fraction of one logical unit)
  631.  2Eh    WORD    (logical devices only) Y-axis scaling accumulator
  632.         (fraction of one logical unit)
  633.  
  634. Bitfields for HP logical device status flags:
  635. Bit(s)    Description    (Table 2999)
  636.  15-5    reserved
  637.  4    event enabled
  638.  3    tracking enabled
  639.  2    clipping enabled
  640.  1    button error occurred
  641.  0    interrupt in progress
  642. SeeAlso: #2998
  643.  
  644. (Table 3000)
  645. Values for HP-HIL device ID:
  646.  00h-02h reserved
  647.  03h    Swiss-French keyboard
  648.  04h-06h reserved
  649.  07h    Canadian-English keyboard
  650.  08h-0Ah reserved
  651.  0Bh    Italian keyboard
  652.  0Ch    reserved
  653.  0Dh    Dutch keyboard
  654.  0Eh    Swedish keyboard
  655.  0Fh    German keyboard
  656.  10h-12h reserved
  657.  13h    Spanish keyboard
  658.  14h    reserved
  659.  15h    Belgian (Flemish) keyboard
  660.  16h    Finnish keyboard
  661.  17h    UK keyboard
  662.  18h    French-Canadian keyboard
  663.  19h    Swiss-German keyboard
  664.  1Ah    Nerwegian keyboard
  665.  1Bh    Frensh keyboard
  666.  1Ch    Danish keyboard
  667.  1Dh    Katakana keyboard
  668.  1Eh    Latin American-Spanish keyboard
  669.  1Fh    US-American keyboard
  670.  20h-2Bh reserved
  671.  2Ch-2Fh tone generator
  672.  30h-3Fh reserved
  673.  40h-5Bh reserved (character entry)
  674.  5Ch-5Fh barcode reader
  675.  60h-67h reserved (relative positions)
  676.  68h-6Bh mouse
  677.  6Ch-6Fh trackball
  678.  70h-7Fh reserved (relative positions)
  679.  80h-87h reserved (absolute positions)
  680.  88h-8Bh touchpad
  681.  8Ch-8Fh touch screen
  682.  90h-97h graphics tablet
  683.  98h-9Fh reserved (absolute positions)
  684.  A0h-BFh compressed keyboard (91-93 keys)
  685.  C0h-DFh extended keyboard (107-109 keys)
  686.  E0h-FFh standard keyboard (85-87 keys)
  687. --------N-6F01-------------------------------
  688. INT 6F - 10NET - LOGOFF
  689.     AH = 01h
  690.     DS:DX -> superstation ID or nulls (12 bytes)
  691. Return: CX = number of files closed
  692.     AX = status (see also #2989)
  693.         08FFh superstation ID not already logged in
  694. SeeAlso: AH=00h"10NET",AH=81h
  695. --------N-6F02-------------------------------
  696. INT 6F - 10NET - STATUS OF NODE
  697.     AH = 02h
  698.     DS:DX -> 512-byte status record (see #3002)
  699. Return: CF clear if successful
  700.     CF set on error
  701.         AX = error code (see #2989)
  702. SeeAlso: INT 21/AX=5E01h"10NET"
  703.  
  704. (Table 3001)
  705. Values for 10NET station type:
  706.  00h    workstation
  707.  01h    superstation
  708.  02h    gateway station
  709.  03h    gateway active
  710.  04h    logged into multiple superstations
  711.  05h    reserved
  712.  
  713. Format of 10NET node status record:
  714. Offset    Size    Description    (Table 3002)
  715.  00h  8 BYTEs    user name (0 if none)
  716.  08h    BYTE    station type (see #3001)
  717.  09h 24 BYTEs    list of superstations logged into more than one superstation
  718.  21h 12 BYTEs    node ID
  719.  2Dh    WORD    message count for this station (send for user node, receive for
  720.           superstations)
  721. ---for superstations only---
  722.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  723.  31h    BYTE    user service flags (see #3003)
  724.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  725.  33h    BYTE    number of unprinted spool files
  726.  34h    BYTE    number of opened files
  727.  35h    BYTE    number of logged on nodes
  728.  36h    BYTE    primary drive (1=A:)
  729.  37h    BYTE    reserved
  730.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  731. 1F4h  3 BYTEs    time: sec/min/hrs
  732. 1F7h  3 BYTEs    date: day/mon/year-1980
  733.  
  734. Bitfields for 10NET user service flags:
  735. Bit(s)    Description    (Table 3003)
  736.  7    gate
  737.  6    print permit on
  738.  4    SUBMIT is on
  739.  3    mail waiting for node
  740.  2    calendar waiting for you
  741.  1    news waiting for you
  742.  0    mail waiting for you
  743. --------b-6F0200-----------------------------
  744. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INIT" - START INITIALIZING DRIVER
  745.     AX = 0200h
  746.     BP = driver ID (see #2990)
  747.     BX = "last-used DS" value from HP global data area (see #2997)
  748. Return: AH = status (see #2993)
  749.     BX = new "last-used DS" value
  750.     BP,DS destroyed
  751. SeeAlso: AH=00h"HP Vectra",AX=0202h,AH=0Ch"F_INS_FIXOWNDS"
  752. --------b-6F0202-----------------------------
  753. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_START" - COMPLETE DRIVER INITIALIZ.
  754.     AX = 0202h
  755.     BP = driver ID (see #2990)
  756. Return: AH = status (see #2993)
  757.     BP,DS destroyed
  758. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra"
  759. --------W-6F0204-----------------------------
  760. INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
  761.     AX = 0204h
  762. Return: AX = status
  763.         0000h switch is allowed
  764.         other switch not allowed
  765. Note:    intercepting this call will allow a DOS application to ensure that
  766.       Windows will not switch away from it.
  767. --------b-6F0204-----------------------------
  768. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_REPORT_STATE" - GET DRIVER STATE
  769.     AX = 0204h
  770.     BP = driver ID (see #2990)
  771. Return: AH = status (see #2993)
  772.     DX = device state from Logical Describe Record (see #2998,#3004)
  773.     BP,DS destroyed
  774. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0206h"HP Vectra"
  775.  
  776. Bitfields for HP Vectra V_HPHIL driver state:
  777. Bit(s)    Description    (Table 3004)
  778.  0    link configuration in progress
  779.  1    reserved
  780.  2    no devices attached
  781.  3    general failure
  782.  4,5    reserved
  783.  6    HP-HIL driver open
  784.  7    reserved
  785.  8    link has been reconfigured
  786.  9    error during output request
  787.  10    reserved
  788.  11    output request complete
  789.  12    timeout
  790.  13-15    reserved
  791. --------b-6F0206-----------------------------
  792. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_VERSION_DESC" - GET DRIVER VERSION
  793.     AX = 0206h
  794.     BP = driver ID (see #2990)
  795. Return: AH = status (see #2993)
  796.     BX = driver release date code
  797.         (BL = BCD years since 1960, BH = BCD week number within year)
  798.     CX = length of version string
  799.     ES:DI -> version string
  800.     BP,DS destroyed
  801. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra",AX=0208h
  802. --------b-6F0208-----------------------------
  803. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_DEF_ATTR" - RESET TO DEFAULT ATTR
  804.     AX = 0208h
  805.     BP = driver ID (see #2990)
  806. Return: AH = status (see #2993)
  807.     BP,DS destroyed
  808. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=020Ah,AX=020Ch
  809. --------b-6F020A-----------------------------
  810. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_GET_ATTR" - GET CURRENT ATTRIBUTES
  811.     AX = 020Ah
  812.     BP = driver ID (see #2990)
  813. Return: AH = status (see #2993)
  814.     BX,CX = current attributes
  815.     BP,DS destroyed
  816.     ---for V_LTOUCH, V_LPOINTER---
  817.         BX = logical width
  818.         CX = logical height
  819. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ch
  820. --------b-6F020C-----------------------------
  821. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_SET_ATTR" - SET DEVICE ATTRIBUTES
  822.     AX = 020Ch
  823.     BP = driver ID (see #2990)
  824.     BX,CX = new attributes
  825.     ---for V_LTOUCH, V_LPOINTER---
  826.         BX = new logical width
  827.         CX = new logical height
  828. Return: AH = status (see #2993)
  829.     BP,DS destroyed
  830. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ah
  831. --------b-6F020E-----------------------------
  832. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_OPEN" - RESERVE DRIVER FOR ACCESS
  833.     AX = 020Eh
  834.     BP = driver ID (see #2990) for V_HPHIL, others
  835. Return: AH = status (see #2993)
  836.     BP,DS destroyed
  837. Desc:    place device in open state, which allows output to the device
  838. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=0210h
  839. --------b-6F0210-----------------------------
  840. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_CLOSE" - RELEASE DRIVER
  841.     AX = 0210h
  842.     BP = driver ID (see #2990) for V_HPHIL, others
  843. Return: AH = status (see #2993)
  844.     BP,DS destroyed
  845. Desc:    place device in closed state, which disallows output to the device
  846. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh
  847. --------b-6F0212-----------------------------
  848. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TIMEOUT" - REPORT REQUESTED TIMEOUT
  849.     AX = 0212h
  850.     BP = driver ID (see #2990)
  851. Return: AH = status (see #2993)
  852.     BP,DS destroyed
  853. Desc:    report to driver that a previously-requested timeout interval has
  854.       expired
  855. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0214h,AX=0216h
  856. --------b-6F0214-----------------------------
  857. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INTERVAL" - 60 HZ INTERVAL EXPIRED
  858.     AX = 0214h
  859.     BP = driver ID (see #2990)
  860. Return: AH = status (see #2993)
  861.     BP,DS destroyed
  862. Desc:    report to driver that a previously-requested 60 Hz interval has
  863.       expired
  864. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0216h
  865. --------b-6F0216-----------------------------
  866. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TEST" - PERFORM HARDWARE TEST
  867.     AX = 0216h
  868.     BP = driver ID (see #2990)
  869. Return: AH = status (see #2993)
  870.     BP,DS destroyed
  871.     ---on failure---
  872.     CX = length of reason string
  873.     ES:DI -> string describing error
  874. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0214h
  875. --------N-6F03-------------------------------
  876. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  877.     AH = 03h
  878.     DS:DI -> node ID (optional)
  879. Return: ES:BX -> configuration table (see #3005)
  880. SeeAlso: AH=13h,INT 21/AX=5E01h"10NET"
  881.  
  882. Format of 10NET configuration table:
  883. Offset    Size    Description    (Table 3005)
  884. -41    WORD    local device table address
  885. -39    WORD    extended network error mapping table address
  886. -37    WORD    shared device table address
  887. -35    WORD    mounted device table address
  888. -33    BYTE    receive buffer counter
  889. -32    BYTE    collect buffer counter
  890. -31    WORD    TUF address
  891. -29    BYTE    enable flag
  892. -28    BYTE    FCB keep flag
  893. -27    WORD    reserved
  894. ---up to here, 10NET v3.3---
  895. -25    WORD    count of dropped Send6F
  896. -23    WORD    buffer start address
  897. -21    WORD    comm driver base address
  898. -19    WORD    send/receive retry count
  899. -17    BYTE    number of 550ms loops before timeout
  900. -16    WORD    UFH address
  901. -14    WORD    CDIR address
  902. -12    WORD    LTAB address
  903. -10    WORD    SFH address
  904. -8    WORD    FTAB address
  905. -6    WORD    RLTAB address
  906. -4    WORD    SMI address
  907. -2    WORD    NTAB address
  908.  00h    WORD    address of first CT_DRV
  909.  02h    BYTE    number of DRV entries
  910.  03h  8 BYTEs    login name
  911.  0Bh 12 BYTEs    node ID (blank-padded)
  912.  17h  6 BYTEs    node address
  913.  1Dh    BYTE    flag
  914.  1Eh    BYTE    CT_CFLG (chat permit)
  915.         bit 1: sound bell
  916.         bit 0: CHAT permit
  917.  1Fh    BYTE    CT_PSFLG (see #3006)
  918.  20h    BYTE    in 10Net flag
  919.  21h    WORD    receive message count
  920.  23h    WORD    send message count
  921.  25h    WORD    retry count
  922.  27h    WORD    failed count
  923.  29h    WORD    driver errors
  924.  2Bh    WORD    dropped responses/CHATs
  925.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  926.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  927.  3Ch    BYTE    active CB channel
  928.  3Dh    BYTE    received 6F messages on queue
  929.  3Eh  9 BYTEs    activity counters for channels 1-9
  930. ---beyond here, 10NET v3.3---
  931.  47h    BYTE    bit 0: RS232 gate
  932.         bit 1: Send6F gate (user set)
  933.  48h    DWORD    pointer into gate (user set)
  934.  4Ch    DWORD    pointer into 10Net send
  935.  50h  N WORDs    addresses of timer blocks
  936.  
  937. Bitfields for CT_PSFLG:
  938. Bit(s)    Description    (Table 3006)
  939.  5    PRINT permit
  940.  4    KB initiated
  941.  3    CHAT called FOXPTRM
  942.  2    SUBMIT active
  943.  1    SUBMIT received
  944.  0    SUBMIT permit
  945. --------N-6F04-------------------------------
  946. INT 6F - 10NET - SEND
  947.     AH = 04h
  948.     DS:BX -> send record (see #3007)
  949.     DS:DX -> data (max 1024 bytes)
  950. Return: CF clear if successful
  951.     CF set on error
  952.         AX = error code (see #2989)
  953. SeeAlso: AH=05h,AH=09h,AH=0Ah
  954.  
  955. Format of 10NET send record:
  956. Offset    Size    Description    (Table 3007)
  957.  00h 12 BYTEs    receiving node's ID
  958.         if first byte has high-order bit set, message is directed to
  959.           the CT_RGATE vector at the receiver
  960.         if second byte is 00h, first byte is taken as a CB
  961.           channel number and delivered to all nodes on same channel
  962.  0Ch    WORD     length of data at DX
  963. --------b-6F04--BP0012-----------------------
  964. INT 6F - HP Vectra EX-BIOS - "F_INS_BASEHPVT" - GET HP_VECTOR_TABLE ADDRESS
  965.     AH = 04h
  966.     BP = 0012h (driver ID for V_SYSTEM)
  967. Return: AH = status (see #2993)
  968.     ES = segment of HP_VECTOR_TABLE (see also AH=00h"HP Vectra")
  969.     BP,DS destroyed
  970. SeeAlso: AH=00h"HP Vectra",AH=06h"F_INS_XCHGFIX",AH=08h"F_INS_XCHGRSVD"
  971. --------b-6F04--BP005A-----------------------
  972. INT 6F - HP Vectra EX-BIOS - "F_TRACK_INIT" - RESET TRACKING DRIVER TO DEFAULTS
  973.     AH = 04h
  974.     BP = 005Ah (driver ID for V_STRACK)
  975. Return: AH = status (see #2993)
  976.     BP,DS destroyed
  977. SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=08h"F_TRACK_OFF"
  978. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  979. --------b-6F0400-----------------------------
  980. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_LOCK" - RESERVE SUB-ADDRESSES
  981.     AX = 0400h
  982.     BP = driver ID (see #2990)
  983.     DH,DL = major,minor address (optional)
  984. Return: AH = status (see #2993)
  985.     BP,DS destroyed
  986. Desc:    reserve specified sub-addresses on an already-allocated driver for
  987.       exclusive access
  988. Note:    this function is documented as present but unsupported in the drivers
  989.       V_LTABLET, V_LPOINTER, and V_LTOUCH
  990. SeeAlso: AH=02h"HP Vectra",AX=0402h"SF_UNLOCK"
  991. --------b-6F0400BP001E-----------------------
  992. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_SVC" - UNMASK 8041 SVC INT
  993.     AX = 0400h
  994.     BP = 001Eh (driver ID for V_S8259)
  995. Return: AH = status (see #2993)
  996.     BP,DS destroyed
  997. SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD"
  998. SeeAlso: AX=0408h"SF_ENABLE_HPHIL"
  999. --------b-6F0400BP002A-----------------------
  1000. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DEF_LINKS" - SET DEFAULT PARENTS
  1001.     AX = 0400h
  1002.     BP = 002Ah (driver ID for V_SINPUT)
  1003. Return: AH = status (see #2993)
  1004.     BP,DS destroyed
  1005. Desc:    set the parent vectors in the physical device driver headers to their
  1006.       system defaults
  1007. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=002Ah,AX=0404h/BP=002Ah
  1008. SeeAlso: AH=06h"F_INQUIRE"
  1009. --------b-6F0400BP0054-----------------------
  1010. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_ID_HP" - INSTALLATION CHECK
  1011.     AX = 0400h
  1012.     BP = 0054h (driver ID for V_SVIDEO)
  1013.     ???
  1014. Return: AH = status (see #2993)
  1015.     BX = 4850h ('BP')
  1016.     BP,DS destroyed
  1017.     ???
  1018. Note:    only partially documented
  1019. SeeAlso: AX=0402h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h
  1020. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1021. --------b-6F0400BP00CC-----------------------
  1022. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - INIT INT 33 HANDLER
  1023.     AX = 0400h
  1024.     BP = 00CCh (driver ID for V_LHPMOUSE)
  1025. Return: AH = status (see #2993)
  1026.     BP,DS destroyed
  1027. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=00CCh
  1028. --------b-6F0402-----------------------------
  1029. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_UNLOCK" - RELEASE SUB-ADDRESSES
  1030.     AX = 0402h
  1031.     BP = driver ID (see #2990)
  1032.     DH,DL = major,minor address (optional)
  1033. Return: AH = status (see #2993)
  1034.     BP,DS destroyed
  1035. Desc:    release specified sub-addresses from exclusive access
  1036. Note:    this function is documented as present but unsupported in the drivers
  1037.       V_LTABLET, V_LPOINTER, and VLTOUCH
  1038. SeeAlso: AH=02h"HP Vectra",AX=0400h"SF_LOCK"
  1039. --------b-6F0402BP001E-----------------------
  1040. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_SVC" - MASK 8041 SVC INT
  1041.     AX = 0402h
  1042.     BP = 001Eh (driver ID for V_S8259)
  1043. Return: AH = status (see #2993)
  1044.     BP,DS destroyed
  1045. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0406h/BP=001Eh
  1046. SeeAlso: AX=040Ah/BP=001Eh
  1047. --------b-6F0402BP002A-----------------------
  1048. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_GET_LINKS" - GET DRIVER LINK FIELDS
  1049.     AX = 0402h
  1050.     BP = 002Ah (driver ID for V_SINPUT)
  1051.     ES:SI -> buffer for link table (see #3008)
  1052. Return: AH = status (see #2993)
  1053.     ES:SI buffer filled
  1054.     BP,DS destroyed
  1055. Desc:    get the parent and child vectors for the seven supported physical
  1056.       device drivers
  1057. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0404h"SF_SET_LINKS"
  1058. SeeAlso: AH=06h"F_INQUIRE"
  1059.  
  1060. Format of HP Vectra EX-BIOS driver link table:
  1061. Offset    Size    Description    (Table 3008)
  1062.  00h    BYTE    vector number of HP-HIL device #1's child
  1063.  01h    BYTE    vector number of HP-HIL device #1's parent
  1064.     ...
  1065.  0Ch    BYTE    vector number of HP-HIL device #7's child
  1066.  0Dh    BYTE    vector number of HP-HIL device #7's parent
  1067. --------b-6F0402BP0054-----------------------
  1068. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_INFO" - GET DISPLAY INFO
  1069.     AX = 0402h
  1070.     BP = 0054h (driver ID for V_SVIDEO)
  1071.     ???
  1072. Return: AH = status (see #2993)
  1073.     BP,DS destroyed
  1074.     ???
  1075. Note:    only partially documented
  1076. SeeAlso: AX=0400h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h
  1077. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1078. --------b-6F0402BP00CC-----------------------
  1079. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - FORCE INT 33 INIT
  1080.     AX = 0402h
  1081.     BP = 00CCh (driver ID for V_LHPMOUSE)
  1082. Return: AH = status (see #2993)
  1083.     BP,DS destroyed
  1084. Desc:    set up INT 33 even if no mouse is installed
  1085. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=00CCh
  1086. --------b-6F0404-----------------------------
  1087. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_ON" - GRAPHICS CURSOR ON
  1088.     AX = 0404h
  1089.     BP = driver ID (see #2990) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1090. Return: AH = status (see #2993)
  1091.     BP,DS destroyed
  1092. Desc:    enables graphics cursor tracking of the logical device's movement
  1093. SeeAlso: AH=00h"HP Vectra",AX=0400h,AX=0406h"SF_TRACK_OFF"
  1094. --------b-6F0404BP001E-----------------------
  1095. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_KBD" - UNMASK 8041 OBF INT
  1096.     AX = 0404h
  1097.     BP = 001Eh (driver ID for V_S8259)
  1098. Return: AH = status (see #2993)
  1099.     BP,DS destroyed
  1100. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_ENABLE_SVC",AX=0406h"SF_DISABLE_KBD"
  1101. SeeAlso: AX=0408h"SF_ENABLE_HPHIL"
  1102. --------b-6F0404BP002A-----------------------
  1103. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_LINKS" - SET DRIVER LINK FIELDS
  1104.     AX = 0404h
  1105.     BP = 002Ah (driver ID for V_SINPUT)
  1106.     ES:SI -> buffer containing link table (see #3008)
  1107. Return: AH = status (see #2993)
  1108.     BP,DS destroyed
  1109. Desc:    specify the parent and child vectors for the seven supported physical
  1110.       device drivers
  1111. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0402h"SF_GET_LINKS"
  1112. SeeAlso: AH=06h"F_INQUIRE"
  1113. --------b-6F0404BP0054-----------------------
  1114. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_INFO" - SET EXT-CTRL INFO
  1115.     AX = 0404h
  1116.     BP = 0054h (driver ID for V_SVIDEO)
  1117.     ???
  1118. Return: AH = status (see #2993)
  1119.     BP,DS destroyed
  1120.     ???
  1121. Note:    only partially documented
  1122. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0406h/BP=0054h
  1123. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1124. --------b-6F0406-----------------------------
  1125. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_OFF" - GRAPHICS CURSOR OFF
  1126.     AX = 0406h
  1127.     BP = driver ID (see #2990) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1128. Return: AH = status (see #2993)
  1129.     BP,DS destroyed
  1130. Desc:    disables graphics cursor tracking of the logical device's movement
  1131. SeeAlso: AH=00h"HP Vectra",AX=0400h,AX=0404h"SF_TRACK_ON"
  1132. SeeAlso: AX=0408h"SF_CREATE_EVENT"
  1133. --------b-6F0406BP001E-----------------------
  1134. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_KBD" - MASK 8041 OBF INT
  1135.     AX = 0406h
  1136.     BP = 001Eh (driver ID for V_S8259)
  1137. Return: AH = status (see #2993)
  1138.     BP,DS destroyed
  1139. SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD"
  1140. SeeAlso: AX=040Ah"SF_DISABLE_HPHIL"
  1141. --------b-6F0406BP0054-----------------------
  1142. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_MOD_INFO" - SET EXT-CTRL REG
  1143.     AX = 0406h
  1144.     BP = 0054h (driver ID for V_SVIDEO)
  1145.     ???
  1146. Return: AH = status (see #2993)
  1147.     BP,DS destroyed
  1148.     ???
  1149. Note:    only partially documented
  1150. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1151. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1152. --------b-6F0406BP0114-----------------------
  1153. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_RECONFIGURE" - RECONFIG LINK
  1154.     AX = 0406h
  1155.     BP = 0114h (driver ID for V_HPHIL)
  1156. Return: AH = status (see #2993)
  1157.     BP,DS destroyed
  1158. SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0408h"SF_CRV_WR_PROMPTS"
  1159. SeeAlso: AX=0410h"SF_CRV_SELF_TEST"
  1160. --------b-6F0408-----------------------------
  1161. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_EVENT" - SET EVENT HANDLER
  1162.     AX = 0408h
  1163.     BP = driver ID (see #2990) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1164.     ES:SI -> new event handler (see AH=00h"HP Vectra")
  1165.     DX = new handler's DS
  1166. Return: AH = status (see #2993)
  1167.     ES:SI -> old event handler
  1168.     DX = old handler's DS
  1169.     BP,DS destroyed
  1170. Desc:    specify routine to be called on logical device events
  1171. Note:    when events occur, the event handler is called with the same registers
  1172.       as the "F_ISR" function on AH=00h"HP Vectra"
  1173. SeeAlso: AH=00h"HP Vectra",AX=0400h,AX=0406h"SF_TRACK_OFF"
  1174. SeeAlso: AX=040Ah"SF_EVENT_ON",AX=040Ch"SF_EVENT_OFF",AH=06h"F_SAMPLE"
  1175. --------b-6F0408BP001E-----------------------
  1176. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_HPHIL" - UNMASK HP-HIL INT
  1177.     AX = 0408h
  1178.     BP = 001Eh (driver ID for V_S8259)
  1179. Return: AH = status (see #2993)
  1180.     BP,DS destroyed
  1181. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0404h/BP=001Eh
  1182. SeeAlso: AX=040Ah/BP=001Eh
  1183. --------b-6F0408BP0054-----------------------
  1184. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_RES" - GET VIDMODE RESOLUTN
  1185.     AX = 0408h
  1186.     BP = 0054h (driver ID for V_SVIDEO)
  1187.     ???
  1188. Return: AH = status (see #2993)
  1189.     BP,DS destroyed
  1190.     ???
  1191. Note:    only partially documented
  1192. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1193. SeeAlso: AX=0406h/BP=0054h,AX=040Ah/BP=0054h
  1194. --------b-6F0408BP0114-----------------------
  1195. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_PROMPTS" - WRITE PROMPT
  1196.     AX = 0408h
  1197.     BP = 0114h (driver ID for V_HPHIL)
  1198.     BX = device address indicator (see #3009)
  1199.     DH = HP HIL device major address
  1200.     DL = prompt number
  1201. Return: AH = status (see #2993)
  1202.     BP,DS destroyed
  1203. SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0406h/BP=0114h,AX=040Ah/BP=0114h
  1204.  
  1205. Bitfields for HP Vectra V_HPHIL device address indicator:
  1206. Bit(s)    Description    (Table 3009)
  1207.  15-14    reserved
  1208.  13    address in DH is valid (must be set, clear is reserved)
  1209.  12    valid value in DL
  1210.  11-0    reserved
  1211. --------b-6F040A-----------------------------
  1212. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_ON" - ENABLE EVENT HANDLER
  1213.     AX = 040Ah
  1214.     BP = driver ID (see #2990) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1215. Return: AH = status (see #2993)
  1216.     BP,DS destroyed
  1217. SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ch"SF_EVENT_OFF"
  1218. SeeAlso: AX=040Eh"SF_CLIPPING_ON"
  1219. --------b-6F040ABP001E-----------------------
  1220. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_HPHIL" - MASK HP-HIL INT
  1221.     AX = 040Ah
  1222.     BP = 001Eh (driver ID for V_S8259)
  1223. Return: AH = status (see #2993)
  1224.     BP,DS destroyed
  1225. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=001Eh,AX=0406h/BP=001Eh
  1226. SeeAlso: AX=0408h/BP=001Eh
  1227. --------b-6F040ABP0054-----------------------
  1228. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_MODE" - SET VIDEO MODE
  1229.     AX = 040Ah
  1230.     BP = 0054h (driver ID for V_SVIDEO)
  1231.     ???
  1232. Return: AH = status (see #2993)
  1233.     BP,DS destroyed
  1234.     ???
  1235. Note:    only partially documented
  1236. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1237. SeeAlso: AX=0406h/BP=0054h,AX=0408h/BP=0054h
  1238. --------b-6F040ABP00AE-----------------------
  1239. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_INTR" - CREATE INTERVAL ENTRY
  1240.     AX = 040Ah
  1241.     BP = 00AEh (driver ID for V_8041)
  1242.     BH = vector number of driver to be called regularly (vector addr / 6)
  1243. Return: AH = status (see #2993)
  1244.     BP,DS destroyed
  1245. Desc:    add a driver to the list (max eight) of drivers which will be called
  1246.       by the HP's 8041 at 60 Hz
  1247. Note:    the newly added entry will not be called until enabled with
  1248.       AX=040Eh/BP=00AEh
  1249. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1250. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1251. --------b-6F040ABP0114-----------------------
  1252. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_ACK" - ACKNOWLEDGE DEVICE
  1253.     AX = 040Ah
  1254.     BP = 0114h (driver ID for V_HPHIL)
  1255.     BX = device address indicator (see #3009)
  1256.     DH = HP HIL device major address
  1257.     DL = acknowledge number (specific if 01h-07h, generic otherwise)
  1258. Return: AH = status (see #2993)
  1259.     BP,DS destroyed
  1260. SeeAlso: AH=00h"HP Vectra",AX=0406h/BP=0114h,AX=040Ch/BP=0114h
  1261. --------b-6F040C-----------------------------
  1262. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_OFF" - DISABLE EVENT HANDLER
  1263.     AX = 040Ch
  1264.     BP = driver ID (see #2990) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1265. Return: AH = status (see #2993)
  1266.     BP,DS destroyed
  1267. SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ah"SF_EVENT_ON"
  1268. --------b-6F040CBP00AE-----------------------
  1269. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DELET_INTR" - DELETE INTERVAL ENTRY
  1270.     AX = 040Ch
  1271.     BP = 00AEh (driver ID for V_8041)
  1272.     BH = vector number of driver to be removed (vector addr / 6)
  1273. Return: AH = status (see #2993)
  1274.     BP,DS destroyed
  1275. Desc:    remove a driver to the list (max eight) of drivers which will be called
  1276.       by the HP's 8041 at 60 Hz
  1277. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh
  1278. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1279. --------b-6F040CBP0114-----------------------
  1280. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPEAT" - SET KEY REPEAT RATE
  1281.     AX = 040Ch
  1282.     BP = 0114h (driver ID for V_HPHIL)
  1283.     BX = device address indicator (see #3009)
  1284.     DH = HP HIL device major address
  1285.     DL = repeat rate (00h = 30 Hz, 01h = 60 Hz)
  1286. Return: AH = status (see #2993)
  1287.     BP,DS destroyed
  1288. Note:    this function is only available if the driver is in the open state
  1289.       (see AX=020Eh"SF_OPEN")
  1290. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=0114h,AX=040Eh/BP=0114h
  1291. --------b-6F040E-----------------------------
  1292. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_ON" - ENABLE CLIPPING
  1293.     AX = 040Eh
  1294.     BP = driver ID (see #2990) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1295. Return: AH = status (see #2993)
  1296.     BP,DS destroyed
  1297. Desc:    causes the physical device's motion to be clipped to prevent overflow
  1298.       or underflow of the logical position
  1299. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=0410h"SF_CLIPPING_OFF"
  1300. --------b-6F040EBP00AE-----------------------
  1301. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABL_INTR" - START INTERRUPT SRVICE
  1302.     AX = 040Eh
  1303.     BP = 00AEh (driver ID for V_8041)
  1304.     BH = vector number of driver to be called regularly (vector addr / 6)
  1305. Return: AH = status (see #2993)
  1306.     BP,DS destroyed
  1307. Desc:    enable 60 Hz calling of a driver previously added to the list of
  1308.       drivers to be called by the HP's 8041
  1309. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh
  1310. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1311. --------b-6F040EBP0114-----------------------
  1312. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_DISABLE_REPEAT" - KEY REPT OFF
  1313.     AX = 040Eh
  1314.     BP = 0114h (driver ID for V_HPHIL)
  1315.     BX = device address indicator (see #3009)
  1316.     DH = HP HIL device major address
  1317. Return: AH = status (see #2993)
  1318.     BP,DS destroyed
  1319. Note:    this function is only available if the driver is in the open state
  1320.       (see AX=020Eh"SF_OPEN")
  1321. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0410h/BP=0114h
  1322. SeeAlso: AX=0416h/BP=0114h
  1323. --------b-6F0410-----------------------------
  1324. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_OFF" - DISABLE CLIPPING
  1325.     AX = 0410h
  1326.     BP = driver ID (see #2990) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1327. Return: AH = status (see #2993)
  1328.     BP,DS destroyed
  1329. Desc:    disables clipping of the physical device's motion, which may cause
  1330.       overflow or underflow of the logical position
  1331. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"
  1332. --------b-6F0410BP00AE-----------------------
  1333. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISBL_INTR" - END INTERRUPT SERVICE
  1334.     AX = 0410h
  1335.     BP = 00AEh (driver ID for V_8041)
  1336.     BH = vector number of driver (vector addr / 6)
  1337. Return: AH = status (see #2993)
  1338.     BP,DS destroyed
  1339. Desc:    disable 60 Hz interval calls to the specified driver
  1340. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1341. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1342. --------b-6F0410BP0114-----------------------
  1343. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_SELF_TEST" - PERFORM SELFTEST
  1344.     AX = 0410h
  1345.     BP = 0114h (driver ID for V_HPHIL)
  1346.     BX = device address indicator (see #3009)
  1347.     DH = HP HIL device major address
  1348.     ES:SI -> buffer for result
  1349. Return: AH = status (see #2993)
  1350.     CX = number of bytes in buffer
  1351.     BP,DS destroyed
  1352. Note:    this function is only available if the driver is in the open state
  1353.       (see AX=020Eh"SF_OPEN")
  1354. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0412h/BP=0114h
  1355. --------b-6F0412BP00AE-----------------------
  1356. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_RAMSW" - SET RAM SWITCH IN 8041
  1357.     AX = 0412h
  1358.     BP = 00AEh (driver ID for V_8041)
  1359. Return: AH = status (see #2993)
  1360.     BP,DS destroyed
  1361. Desc:    sets a flag in the 8041 indicating that a second 256K bank of RAM
  1362.       on the motherboard is enabled
  1363. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1364. SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1365. --------b-6F0412BP0114-----------------------
  1366. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_STATUS" - GET DEVSTATUS
  1367.     AX = 0412h
  1368.     BP = 0114h (driver ID for V_HPHIL)
  1369.     BX = device address indicator (see #3009)
  1370.     DH = HP HIL device major address
  1371.     ES:SI -> 15-byte buffer for status
  1372. Return: AH = status (see #2993)
  1373.     CX = number of bytes returned in buffer
  1374.     BP,DS destroyed
  1375. Note:    this function is only available if the driver is in the open state
  1376.       (see AX=020Eh"SF_OPEN")
  1377. SeeAlso: AH=00h"HP Vectra",AX=0410h/BP=0114h,AX=0414h/BP=0114h
  1378. --------b-6F0414BP00AE-----------------------
  1379. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_RAMSW" - CLEAR 8041 RAM SWITCH
  1380.     AX = 0414h
  1381.     BP = 00AEh (driver ID for V_8041)
  1382. Return: AH = status (see #2993)
  1383.     BP,DS destroyed
  1384. Desc:    clears a flag in the 8041 indicating that a second 256K bank of RAM
  1385.       on the motherboard is enabled, causing the second bank to be disabled
  1386. Note:    this function should normally never be called
  1387. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1388. SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh
  1389. --------b-6F0414BP0114-----------------------
  1390. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_NAME" - GET DEV NAME
  1391.     AX = 0414h
  1392.     BP = 0114h (driver ID for V_HPHIL)
  1393.     BX = device address indicator (see #3009)
  1394.     DH = HP HIL device major address
  1395.     ES:SI -> 15-byte buffer for name
  1396. Return: AH = status (see #2993)
  1397.     CX = number of bytes returned in buffer
  1398.     BP,DS destroyed
  1399. Note:    this function is only available if the driver is in the open state
  1400.       (see AX=020Eh"SF_OPEN")
  1401. SeeAlso: AH=00h"HP Vectra",AX=0412h/BP=0114h
  1402. --------b-6F0416BP00AE-----------------------
  1403. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_CRTSW" - SET CRT TO MULTIMODE
  1404.     AX = 0416h
  1405.     BP = 00AEh (driver ID for V_8041)
  1406. Return: AH = status (see #2993)
  1407.     BP,DS destroyed
  1408. Desc:    sets a flag in the 8041 indicating that the primary display is the
  1409.       Multimode graphics adapter (default)
  1410. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1411. SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh
  1412. --------b-6F0416BP0114-----------------------
  1413. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_REPEAT" - SET TYPEMATIC
  1414.     AX = 0416h
  1415.     BP = 0114h (driver ID for V_HPHIL)
  1416.     BH = what to set (00h typematic rate, 01h delay, 02h both)
  1417.     BL = flag (00h = non-CCP keypad, 01h = Cursor Control Pad only)
  1418.     DL = rate
  1419.         bits 7-4: delay value
  1420.         bits 3-0: typematic rate
  1421. Return: AH = status (see #2993)
  1422.     BP,DS destroyed
  1423. SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0418h/BP=0114h
  1424. --------b-6F0418BP00AE-----------------------
  1425. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_CRTSW" - SET CRT TO MONOCHROME
  1426.     AX = 0418h
  1427.     BP = 00AEh (driver ID for V_8041)
  1428. Return: AH = status (see #2993)
  1429.     BP,DS destroyed
  1430. Desc:    clears a flag in the 8041, indicating that the primary display is the
  1431.       monochrome adapter
  1432. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1433. SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1434. --------b-6F0418BP0114-----------------------
  1435. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_LED" - SET KEYBOARD LEDS
  1436.     AX = 0418h
  1437.     BP = 0114h (driver ID for V_HPHIL)
  1438.     BL = new LED states
  1439.         bit 0: scroll lock
  1440.         bit 1: NumLock
  1441.         bit 2: CapsLock
  1442. Return: AH = status (see #2993)
  1443.     BP,DS destroyed
  1444. SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0416h/BP=0114h
  1445. --------b-6F041ABP00AE-----------------------
  1446. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_PASS_THRU" - SEND DATA BYTE TO 8041
  1447.     AX = 041Ah
  1448.     BP = 00AEh (driver ID for V_8041)
  1449.     BL = byte to send to 8041
  1450. Return: AH = status (see #2993)
  1451.     BP,DS destroyed
  1452. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=040Eh/BP=00AEh
  1453. --------N-6F05-------------------------------
  1454. INT 6F - 10NET - RECEIVE
  1455.     AH = 05h
  1456.     CX = number of seconds before timeout
  1457.     DS:DX -> receive buffer (see #3010)
  1458. Return: CF clear if successful
  1459.         AH = FEh if dequeued message is a CB message
  1460.     CF set on error
  1461.         AX = error code (see #2989)
  1462. SeeAlso: AH=04h"10NET"
  1463.  
  1464. Format of 10NET receive buffer:
  1465. Offset    Size    Description    (Table 3010)
  1466.  00h 12 BYTEs    sending node's ID
  1467.  0Ch    WORD    length of message
  1468.  0Eh  N BYTEs    message (maximum 1024 bytes)
  1469. --------b-6F06-------------------------------
  1470. INT 6F - HP Vectra EX-BIOS - "F_PUT_BYTE" - WRITE A BYTE OF DATA TO DEVICE
  1471.     AH = 06h
  1472.     BP = driver ID (see #2990) for V_HPHIL, others
  1473.     AL = value to output
  1474.     ---if driver is V_HPHIL---
  1475.     BX = device address indicator (see #3009)
  1476.     DH = HP HIL device major address
  1477.     DL = HP-HIL device register (00h-7Fh)
  1478. Return: AH = status (see #2993)
  1479.     BP,DS destroyed
  1480. Desc:    output a byte to a specific HP-HIL device register
  1481. Note:    this function is only available if the driver is in the open state
  1482.       (see AX=020Eh"SF_OPEN")
  1483. SeeAlso: AH=04h"HP Vectra",AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER"
  1484. --------b-6F06-------------------------------
  1485. INT 6F - HP Vectra EX-BIOS - "F_SAMPLE" - POLL CURRENT ABSOLUTE POSITION
  1486.     AH = 06h
  1487.     BP = driver ID (see #2990) for V_LTOUCH, V_LPOINTER, V_LTABLET, etc.
  1488. Return: AH = status (see #2993)
  1489.     BX = current logical X position
  1490.     CX = current logical Y position
  1491.     DL = button transitions (bit N = button N state has changed)
  1492.     DH = current button states (bit N = current button N state)
  1493.     ES:0000h -> logical device's Describe Record (see #2998)
  1494.     BP,DS destroyed
  1495. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"
  1496. --------b-6F06--BP0012-----------------------
  1497. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFIX" - EXCH VALUES WITH FIXED VECTOR
  1498.     AH = 06h
  1499.     BP = 0012h (driver ID for V_SYSTEM)
  1500.     BX = vector address
  1501.     DX = new value for DS
  1502.     ES:DI -> new CS:IP entry point
  1503. Return: AH = status (see #2993)
  1504.     DX = old value for DS
  1505.     ES:DI -> old CS:IP entry point
  1506.     BP,DS destroyed
  1507. Desc:    replace an existing EX-BIOS driver at a fixed HPVT location without
  1508.       initialization
  1509. SeeAlso: AH=00h"HP Vectra",AH=04h"F_INS_BASEHPVT",AH=08h"F_INS_XCHGRSVD"
  1510. SeeAlso: AH=0Ah"F_INS_XCHGFREE",AH=0Ch"F_INS_FIXOWNDS"
  1511. --------b-6F06--BP002A-----------------------
  1512. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE" - GET DRIVER PHYSICAL DESCRIBE RECORD
  1513.     AH = 06h
  1514.     BP = 002Ah (driver ID for V_SINPUT)
  1515.     AL = HP-HIL physical device number (01h-07h)
  1516. Return: AH = status (see #2993)
  1517.     ES:SI -> physical describe record for driver
  1518.     BP,DS destroyed
  1519. Note:    the returned physical describe record must not be modified
  1520. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=08h/BP=002Ah,AH=0Ah/BP=002Ah
  1521. SeeAlso: AH=0Ch/BP=002Ah
  1522. --------b-6F06--BP005A-----------------------
  1523. INT 6F - HP Vectra EX-BIOS - "F_TRACK_ON" - ENABLE CURSOR TRACKING
  1524.     AH = 06h
  1525.     BP = 005Ah (driver ID for V_STRACK)
  1526. Return: AH = status (see #2993)
  1527.     BP,DS destroyed
  1528. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  1529. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  1530. --------N-6F07-------------------------------
  1531. INT 6F - 10NET - LOCK HANDLE
  1532.     AH = 07h
  1533.     BX = file handle
  1534.     CX:DX = starting offset in file
  1535.     SI = record length
  1536. Return: CF clear if successful
  1537.     CF set on error
  1538.         AX = error code (see also AH=00h)
  1539.         0002h file not found
  1540. SeeAlso: AH=08h"10NET",AH=0Fh,INT 21/AH=5Ch
  1541. --------N-6F08-------------------------------
  1542. INT 6F - 10NET - UNLOCK HANDLE
  1543.     AH = 08h
  1544.     BX = file handle
  1545.     AL = mode
  1546.         00h unlock all
  1547.         01h unlock record at CX:DX
  1548. Return: CF clear if successful
  1549.     CF set on error
  1550.         AX = error code (see also AH=00h)
  1551.         0002h file not found
  1552. SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch
  1553. --------b-6F08-------------------------------
  1554. INT 6F - HP Vectra EX-BIOS - "F_GET_BYTE" - READ A BYTE OF DATA FROM DEVICE
  1555.     AH = 08h
  1556.     BP = driver ID (see #2990) for V_HPHIL (0114h), others
  1557.     ---if device is V_HPHIL---
  1558.     BX = device address indicator (see #3009)
  1559.     DH = HP HIL device major address
  1560.     DL = HP-HIL device register (00h-7Fh)
  1561. Return: AH = status (see #2993)
  1562.     AL = value read from device
  1563.     BP,DS destroyed
  1564. Desc:    generic read-byte function; for driver V_HPHIL, retrieves the value
  1565.       of a specific HP-HIL device register
  1566. Note:    this function is only available if the driver is in the open state
  1567.       (see AX=020Eh"SF_OPEN")
  1568. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER"
  1569. --------b-6F08--BP0012-----------------------
  1570. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGRSVD" - EXCH VALUES WITH RESRVED VECTOR
  1571.     AH = 08h
  1572.     BP = 0012h (driver ID for V_SYSTEM)
  1573.     DX = new value for DS
  1574.     ES:DI -> new CS:IP entry point
  1575. Return: AH = status (00h,F6h) (see also #2993)
  1576.         00h successful
  1577.         BX = vector address used
  1578.         DX = old value for DS
  1579.         ES:DI -> old CS:IP entry point
  1580.     BP,DS destroyed
  1581. Desc:    exchange the supplied entry point and DS with the values in the next
  1582.       reserved entry in the HP_VECTOR_TABLE
  1583. Note:    returns AH=F6h if no more reserved vectors are available
  1584. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ah/BP=0012h
  1585. SeeAlso: AH=0Ch/BP=0012h
  1586. --------b-6F08--BP002A-----------------------
  1587. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ALL" - GET DRIVER STATUS TABLE
  1588.     AH = 08h
  1589.     BP = 002Ah (driver ID for V_SINPUT)
  1590.     ES:SI -> buffer for device status table (see #3011)
  1591. Return: AH = status (see #2993)
  1592.     ES:SI buffer filled
  1593.     BP,DS destroyed
  1594. Note:    the returned physical describe record must not be modified
  1595. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=0Ah/BP=002Ah
  1596. SeeAlso: AH=0Ch/BP=002Ah
  1597.  
  1598. Format of HP Vectra HP-HIL physical device status table:
  1599. Offset    Size    Description    (Table 3011)
  1600.  00h    BYTE    status for HP-HIL device #1
  1601.         bit 0: device present
  1602.         bits 7-2 reserved
  1603.  01h    BYTE    device ID for HP-HIL device #1
  1604.     ...
  1605.  0Ch    BYTE    status for HP-HIL device #7
  1606.  0Dh    BYTE    device ID for HP-HIL device #7
  1607. --------b-6F08--BP005A-----------------------
  1608. INT 6F - HP Vectra EX-BIOS - "F_TRACK_OFF" - DISABLE CURSOR TRACKING
  1609.     AH = 08h
  1610.     BP = 005Ah (driver ID for V_STRACK)
  1611. Return: AH = status (see #2993)
  1612.     BP,DS destroyed
  1613. Note:    also removes the graphics cursor sprite from the screen
  1614. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=06h"F_TRACK_ON"
  1615. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  1616. --------N-6F09-------------------------------
  1617. INT 6F - 10NET - SUBMIT
  1618.     AH = 09h
  1619.     DS:BX -> submit record (see #3012)
  1620. SeeAlso: AH=04h"10NET"
  1621.  
  1622. Format of 10NET submit record:
  1623. Offset    Size    Description    (Table 3012)
  1624.  00h 12 BYTEs    destination node ID (must be logged in)
  1625.  0Ch    WORD    length+2 of following 'command line' text
  1626.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  1627. --------N-6F0A-------------------------------
  1628. INT 6F - 10NET - CHAT
  1629.     AH = 0Ah
  1630.     DS:BX -> control parameters (see #3013)
  1631.     DS:DX -> chat message (see #3014)
  1632. SeeAlso: AH=04h"10NET",AH=8Ah
  1633.  
  1634. Format of 10NET chat control parameters:
  1635. Offset    Size    Description    (Table 3013)
  1636.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  1637.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  1638.  10h 12 BYTEs    destination node ID
  1639.  
  1640. Format of 10NET chat message:
  1641. Offset    Size    Description    (Table 3014)
  1642.  00h    WORD    length+2 of following text
  1643.  02h  N BYTEs    text, max 101 bytes
  1644. --------b-6F0A-------------------------------
  1645. INT 6F - HP Vectra EX-BIOS - "F_PUT_BUFFER" - WRITE A BUFFER TO DEVICE
  1646.     AH = 0Ah
  1647.     BP = driver ID (see #2990) for V_HPHIL (0114h), others
  1648.     CX = number of bytes to write
  1649.     ES:DI -> buffer containing data
  1650.     ---if driver is V_HPHIL---
  1651.     BX = device address indicator (see #3009)
  1652.     DH = HP HIL device major address
  1653.     DL = HP-HIL device register (00h-7Fh)
  1654. Return: AH = status (see #2993)
  1655.     CX = number of unwritten bytes left in buffer
  1656.     BP,DS destroyed
  1657. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER"
  1658. SeeAlso: AH=0Eh"F_PUT_WORD"
  1659. --------b-6F0A-------------------------------
  1660. INT 6F - HP Vectra EX-BIOS - "F_PUT_BLOCK" - WRITE BLOCKS TO DEVICE
  1661.     AH = 0Ah
  1662.     BP = driver ID (see #2990) for block device
  1663.     DH = device major number
  1664.     DL = device minor number
  1665.     ES:DI -> command block (see #3015)
  1666. Return: AH = status (see #2993)
  1667.     BX = operation status
  1668.     BP,DS destroyed
  1669. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER"
  1670. SeeAlso: AH=0Eh"F_PUT_WORD"
  1671.  
  1672. Format of HP Vectra F_PUT_BLOCK/F_GET_BLOCK command block:
  1673. Offset    Size    Description    (Table 3015)
  1674.  00h    DWORD    data transfer address
  1675.  04h    WORD    number of blocks
  1676.  06h    DWORD    block address (some devices only use low word)
  1677. --------b-6F0A--BP0012-----------------------
  1678. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFREE" - EXCH VALUES WITH FREE VECTOR
  1679.     AH = 0Ah
  1680.     BP = 0012h (driver ID for V_SYSTEM)
  1681.     DX = new value for DS
  1682.     ES:DI -> new CS:IP entry point
  1683. Return: AH = status (00h,F6h) (see also #2993)
  1684.         00h successful
  1685.         BX = vector address used
  1686.         DX = old value for DS
  1687.         ES:DI -> old CS:IP entry point
  1688.     BP,DS destroyed
  1689. Desc:    exchange the supplied entry point and DS with the values in the next
  1690.       free entry in the HP_VECTOR_TABLE
  1691. Note:    returns AH=F6h if no more reserved vectors are available
  1692. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h
  1693. SeeAlso: AH=0Ch/BP=0012h
  1694. --------b-6F0A--BP002A-----------------------
  1695. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_FIRST" - GET PHYSICAL DRIVER VECTOR
  1696.     AH = 0Ah
  1697.     BP = 002Ah (driver ID for V_SINPUT)
  1698. Return: AH = status (see #2993)
  1699.     BX = vector address for first HP-HIL device
  1700.     BP,DS destroyed
  1701. Note:    all seven HP-HIL devices use consecutive vectors in the
  1702.       HP_VECTOR_TABLE
  1703. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah
  1704. SeeAlso: AH=0Ch/BP=002Ah
  1705. --------b-6F0A--BP005A-----------------------
  1706. INT 6F - HP Vectra EX-BIOS - "F_DEF_MASKS" - DEFINE GRAPHICS CURSOR MASKS
  1707.     AH = 0Ah
  1708.     BP = 005Ah (driver ID for V_STRACK)
  1709.     BH = width of save area in bytes
  1710.     BL = hot-spot X coordinate
  1711.     CH = height in scan lines
  1712.     CL = hot-spot Y coordinate
  1713.     ES:SI -> sprite mask (screen mask followed by XOR sprite mask)
  1714. Return: AH = status (see #2993)
  1715.     BP,DS destroyed
  1716. Note:    the save area is one byte wider than the actual sprite mask; the total
  1717.       size of the sprite is at most 144 bytes
  1718. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  1719. SeeAlso: AH=0Ch"F_SET_LIMITS_X",AH=10h"F_PUT_SPRITE",AH=12h"F_REMOVE_SPRITE"
  1720. --------N-6F0B-------------------------------
  1721. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  1722.     AH = 0Bh
  1723.     AL = drive number or 0
  1724.     ES:SI = Ethernet address or 0
  1725.     DS:BX -> 31-byte ASCIZ semaphore name
  1726. Return: AL = status (see #3016)
  1727. Note:    same as INT 60/AH=12h
  1728. SeeAlso: AH=0Ch"10NET",INT 60/AH=12h
  1729.  
  1730. (Table 3016)
  1731. Values for 10NET status:
  1732.  00h    successful
  1733.  01h    semaphore currently locked
  1734.  02h    server not responding
  1735.  03h    invalid semaphore name
  1736.  04h    semaphore list is full
  1737.  05h    invalid drive ID
  1738.  06h    invalid Ethernet address
  1739.  07h    not logged in
  1740.  08h    write to network failed
  1741.  09h    semaphore already logged in this CPU
  1742. SeeAlso: #2989
  1743. Index:    error codes;10-Net|10-Net;error codes
  1744. --------N-6F0C-------------------------------
  1745. INT 6F - 10NET - UNLOCK SEMAPHORE
  1746.     AH = 0Ch
  1747.     AL = drive number or 0
  1748.     ES:SI = Ethernet address or 0
  1749.     DS:BX -> 31-byte ASCIZ semaphore name
  1750. Return: AL = status (see also #3016)
  1751.         01h semaphore not locked
  1752. Note:    same as INT 60/AH=13h
  1753. SeeAlso: AH=0Bh,INT 60/AH=13h
  1754. --------b-6F0C-------------------------------
  1755. INT 6F - HP Vectra EX-BIOS - "F_GET_BUFFER" - READ A BUFFER OF DATA FROM DEVICE
  1756.     AH = 0Ch
  1757.     BP = driver ID (see #2990) for V_HPHIL (0114h), others
  1758.     CX = number of bytes or blocks to read
  1759.     DS:SI -> buffer for received data
  1760. Return: AH = status (see #2993 at AH=00h"HP Vectra")
  1761.     BP,DS destroyed
  1762. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BLOCK"
  1763. SeeAlso: AH=10h"F_GET_WORD"
  1764. --------b-6F0C-------------------------------
  1765. INT 6F - HP Vectra EX-BIOS - "F_GET_BLOCK" - READ BLOCKS OF DATA FROM DEVICE
  1766.     AH = 0Ch
  1767.     BP = driver ID (see #2990)
  1768.     DH = device major number
  1769.     DL = device minor number
  1770.     ES:DI -> command block (see #3015)
  1771. Return: AH = status (see #2993 at AH=00h"HP Vectra")
  1772.     BX = operation status
  1773.     BP,DS destroyed
  1774. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER"
  1775. SeeAlso: AH=10h"F_GET_WORD"
  1776. --------b-6F0C--BP0012-----------------------
  1777. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXOWNDS" - INSTALL VALUES IN FIXED VECTOR
  1778.     AH = 0Ch
  1779.     BP = 0012h (driver ID for V_SYSTEM)
  1780.     BX = vector address used
  1781.     ES:DI -> new CS:IP entry point
  1782. Return: AH = status (00h) (see #2993)
  1783.     BP,DS destroyed
  1784. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1785.       call (see AX=0200h"SF_INIT"), which should return the routine's DS
  1786.       in BX.  If the SF_INIT call returns with error code FEh, the power-on
  1787.       self-test sequence will be called.
  1788. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h
  1789. SeeAlso: AH=0Eh/BP=0012h,AH=12h/BP=0012h
  1790. --------b-6F0C--BP002A-----------------------
  1791. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ENTRY" - GET GID DRIVER ENTRY POINT
  1792.     AH = 0Ch
  1793.     BP = 002Ah (driver ID for V_SINPUT)
  1794. Return: AH = status (see #2993)
  1795.     ES:BX -> physical GID driver CS:IP
  1796.     BP,DS destroyed
  1797. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah
  1798. SeeAlso: AH=0Ah/BP=002Ah
  1799. --------b-6F0C--BP005A-----------------------
  1800. INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_X" - SET HORIZONTAL TRACKING LIMITS
  1801.     AH = 0Ch
  1802.     BP = 005Ah (driver ID for V_STRACK)
  1803.     CX = minimum X coordinate
  1804.     DX = maximum X coordinate
  1805. Return: AH = status (see #2993)
  1806.     BP,DS destroyed
  1807. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Eh/BP=005Ah
  1808. SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0007h
  1809. --------N-6F0D-------------------------------
  1810. INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
  1811.     AH = 0Dh
  1812.     AL = type code
  1813.         01h return superstations only
  1814.         02h return non-superstations only
  1815.         otherwise return all
  1816.     CX = length of data buffer
  1817.     DS:DX -> array of records to be filled (see #3017)
  1818. Return: CL = number of records returned (responding stations)
  1819. SeeAlso: AH=16h,AH=8Dh
  1820.  
  1821. Format of station record:
  1822. Offset    Size    Description    (Table 3017)
  1823.  00h 12 BYTEs    node ID
  1824.  0Ch    BYTE    station flags (see #3018)
  1825. ---if AL = 01h---
  1826.  0Dh    BYTE    version number
  1827.  0Eh    WORD    level number of 10Net software in responding node
  1828. ---if AL = 02h---
  1829.  0Dh  8 BYTEs    user ID
  1830.  15h    BYTE    version number
  1831.  16h    WORD    level number
  1832.  
  1833. Bitfields for station flags:
  1834. Bit(s)    Description    (Table 3018)
  1835.  1    workstation
  1836.  2    superstation
  1837.  3    xgate
  1838.  4    active gate
  1839. --------N-6F0E-------------------------------
  1840. INT 6F - 10NET - SPOOL/PRINT
  1841.     AH = 0Eh
  1842.     DS:DX -> spool/print record (see #3020)
  1843. Return: CF clear if successful
  1844.     CF set on error
  1845.         AX = error code (see also #2989)
  1846.         17FFh device not mounted
  1847.         18FFh already spooling to named device
  1848.  
  1849. (Table 3019)
  1850. Values for 10NET spooler operation code:
  1851.  0000h    initiate spool
  1852.  0001h    abort print
  1853.  0002h    close spool
  1854.  0003h    delete spool
  1855.  0004h    print
  1856.  0005h    get report info
  1857.  0006h    set chat template
  1858.  0007h    queue
  1859.  0008h    return queue
  1860.  0009h    queue non-spooled file for printing
  1861.  
  1862. Format of 10NET Spool/Print record:
  1863. Offset    Size    Description    (Table 3020)
  1864.  00h    WORD    operation code (see #3019)
  1865.  02h 11 BYTEs    file name in FCB format
  1866. ---if operation code = 00h or 06h---
  1867.  0Dh    BYTE    notification flags (see #3021)
  1868.  0Eh    BYTE    days to keep (FFh=forever)
  1869.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  1870.         bits 4-7: remote drive to store spool file (1=A,...)
  1871.  10h    WORD    length of following data area
  1872.  12h  N BYTEs    up to 64 bytes of description
  1873. ---if operation code = 03h---
  1874.  0Dh  8 BYTEs    user ID to associate with filename
  1875. ---if operation code = 04h---
  1876.  0Dh    WORD    block number
  1877.  0Fh  8 BYTEs    user ID to associate with filename
  1878. ---if operation code = 05h---
  1879.  0Dh    BYTE    RRN to start retrieve
  1880.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1881.         bit 3: if set, return entries for all users
  1882.  0Fh    WORD    length of following area
  1883.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  1884. ---if operation code = 07h---
  1885.  0Dh    BYTE    queue number
  1886.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1887.  0Fh    WORD    number of bytes of test print to be done
  1888.  11h    BYTE    code:
  1889.         01h print device
  1890.         02h test print count
  1891.         03h prn
  1892. ---if operation code = 08h---
  1893.  0Dh    BYTE    queue location or $SCNTL location to start access
  1894.         returns next item for access:
  1895.             00h-7Fh queued items
  1896.             80h-FEh non-queued, non-printed items
  1897.             FFh    no more items
  1898.  0Eh    WORD    unused
  1899.  10h    WORD    length of following area
  1900.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records (see #3022)
  1901. ---if operation code = 09h---
  1902.  0Dh  3 BYTEs    unused
  1903.  10h  N BYTEs    path to non-spooled file to be queued for printing
  1904.  
  1905. Bitfields for notification flags:
  1906. Bit(s)    Description    (Table 3021)
  1907.  7    queue to top
  1908.  6    do ID page
  1909.  5    no form feed
  1910.  4    reserved
  1911.  3    explicit queuing only
  1912.  2    notify at print completion
  1913.  1    notify server operator, with reply
  1914.  0    notify at print start
  1915.  
  1916. Format of 10NET $SCNTL record:
  1917. Offset    Size    Description    (Table 3022)
  1918.  00h  8 BYTEs    user ID
  1919.  08h 11 BYTEs    filename in FCB format
  1920.  13h  6 BYTEs    node ID
  1921.  19h  3 BYTEs    creation date
  1922.  1Ch    BYTE    notification flags (see #3021)
  1923.  1Dh    BYTE    retention time in days
  1924.  1Eh    BYTE    printing device (LPTx)
  1925.  1Fh  3 BYTEs    date last printed (0 = never)
  1926.  22h    BYTE    device containing spoolfile
  1927.  23h    WORD    bytes to print for test print
  1928.  25h    WORD    block number to start print
  1929.  27h    BYTE    reserved
  1930. --------b-6F0E-------------------------------
  1931. INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE WORD OF DATA TO DEVICE
  1932.     AH = 0Eh
  1933.     BP = driver ID (see #2990)
  1934.     DX = data word
  1935. Return: AH = status (see #2993 at AH=00h"HP Vectra")
  1936.     BP,DS destroyed
  1937. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=10h"F_GET_WORD"
  1938. --------b-6F0E-------------------------------
  1939. INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE A WORD OF DATA
  1940.     AH = 0Eh
  1941.     BP = driver ID (see #2990)
  1942.     ??? details not yet available
  1943. Return: ???
  1944. SeeAlso: AH=06h"HP Vectra",AH=0Ah"HP Vectra",AH=10h"HP Vectra"
  1945. --------b-6F0E--BP0012-----------------------
  1946. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGETDS" - INSTALL VALUES IN FIXED VECTOR
  1947.     AH = 0Eh
  1948.     BP = 0012h (driver ID for V_SYSTEM)
  1949.     BX = vector address used
  1950.     ES:DI -> new CS:IP entry point
  1951. Return: AH = status (00h) (see #2993)
  1952.     BP,DS destroyed
  1953. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1954.       call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX;
  1955.       the routine should adjust BX and return the new value.  If the
  1956.       SF_INIT call returns with error code FEh, the power-on self-test
  1957.       sequence will be called.
  1958. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ch/BP=0012h
  1959. SeeAlso: AH=10h/BP=0012h,AH=14h/BP=0012h
  1960. --------b-6F0E--BP005A-----------------------
  1961. INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_Y" - SET VERTICAL TRACKING LIMITS
  1962.     AH = 0Eh
  1963.     BP = 005Ah (driver ID for V_STRACK)
  1964.     CX = minimum Y coordinate
  1965.     DX = maximum Y coordinate
  1966. Return: AH = status (see #2993)
  1967.     BP,DS destroyed
  1968. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Ch/BP=005Ah
  1969. SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0008h
  1970. --------N-6F0F-------------------------------
  1971. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  1972.     AH = 0Fh
  1973.     ???
  1974. Return: ???
  1975. SeeAlso: AH=07h,AH=08h"10NET"
  1976. --------N-6F10-------------------------------
  1977. INT 6F - 10NET - ATTACH/DETACH PRINTER
  1978.     AH = 10h
  1979.     AL = subfunction
  1980.         00h initiate spooling if LPT1 is mounted
  1981.         01h terminate spooling if LPT1 is mounted
  1982. SeeAlso: INT 21/AX=5D08h
  1983. --------b-6F10-------------------------------
  1984. INT 6F - HP Vectra EX-BIOS - "F_GET_WORD" - READ WORD OF DATA FROM DEVICE
  1985.     AH = 10h
  1986.     BP = driver ID (see #2990)
  1987. Return: AH = status (see #2993 at AH=00h"HP Vectra")
  1988.     DX = data word
  1989.     BP,DS destroyed
  1990. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ch"F_GET_BUFFER",AH=0Eh"F_PUT_WORD"
  1991. --------b-6F10--BP0012-----------------------
  1992. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGLBDS" - INSTALL VALUES IN FIXED VECTOR
  1993.     AH = 10h
  1994.     BP = 0012h (driver ID for V_SYSTEM)
  1995.     BX = vector address used
  1996.     ES:DI -> new CS:IP entry point
  1997. Return: AH = status (00h) (see #2993)
  1998.     BP,DS destroyed
  1999. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2000.       call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global
  2001.       data area. If the SF_INIT call returns with error code FEh, the
  2002.       power-on self-test sequence will be called.
  2003. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h
  2004. SeeAlso: AH=0Ch/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h,AH=16h/BP=0012h
  2005. --------b-6F10--BP005A-----------------------
  2006. INT 6F - HP Vectra EX-BIOS - "F_PUT_SPRITE" - DISPLAY GRAPHICS CURSOR SPRITE
  2007.     AH = 10h
  2008.     BP = 005Ah (driver ID for V_STRACK)
  2009.     BX = X coordinate
  2010.     CX = Y coordinate
  2011. Return: AH = status (see #2993)
  2012.     BP,DS destroyed
  2013. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  2014. SeeAlso: AH=12h"F_REMOVE_SPRITE",INT 33/AX=0004h
  2015. --------N-6F11-------------------------------
  2016. INT 6F - 10NET - LOCK FCB
  2017.     AH = 11h
  2018.     AL = mode
  2019.         01h sequential
  2020.         02h random
  2021.         03h random block
  2022.         CX = number of records
  2023.     DS:DX -> FCB (see #0693 at INT 21/AH=0Fh)
  2024. Return: CF clear if successful
  2025.     CF set on error
  2026.         AX = error code (see also #2989)
  2027.         0002h file not found
  2028. SeeAlso: AH=12h,INT 21/AH=0Fh
  2029. --------N-6F12-------------------------------
  2030. INT 6F - 10NET - UNLOCK FCB
  2031.     AH = 12h
  2032.     AL = mode
  2033.         00h sequential
  2034.         01h random
  2035.         02h random block
  2036.         CX = number of records
  2037.     DS:DX -> FCB (see #0693 at INT 21/AH=0Fh)
  2038. Return: CF clear if successful
  2039.     CF set on error
  2040.         AX = error code (see also #2989)
  2041.         0002h file not found
  2042. SeeAlso: AH=11h
  2043. --------b-6F12--BP0012-----------------------
  2044. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEOWNDS" - INSTALL VALUES IN FREE VECTOR
  2045.     AH = 12h
  2046.     BP = 0012h (driver ID for V_SYSTEM)
  2047.     ES:DI -> new CS:IP entry point
  2048. Return: AH = status (00h) (see #2993)
  2049.     BP,DS destroyed
  2050. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2051.       call (see AX=0200h"SF_INIT"), which should return the routine's DS
  2052.       in BX.  If the SF_INIT call returns with error code FEh, the power-on
  2053.       self-test sequence will be called.
  2054. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=14h/BP=0012h
  2055. SeeAlso: AH=16h/BP=0012h,AH=18h/BP=0012h
  2056. --------b-6F12--BP005A-----------------------
  2057. INT 6F - HP Vectra EX-BIOS - "F_REMOVE_SPRITE" - REMOVE GRAPHICS CURSOR SPRITE
  2058.     AH = 12h
  2059.     BP = 005Ah (driver ID for V_STRACK)
  2060. Return: AH = status (see #2993)
  2061.     BP,DS destroyed
  2062. SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=10h"F_PUT_SPRITE"
  2063. --------N-6F13-------------------------------
  2064. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  2065.     AH = 13h
  2066.     DS:DX -> node ID, 12 bytes blank-padded
  2067. Return: CF clear if successful
  2068.         ES:BX = configuration table address on given machine
  2069.     CF set on error
  2070.         AX = error code (see #2989)
  2071. SeeAlso: AH=03h
  2072. --------N-6F14-------------------------------
  2073. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  2074.     AH = 14h
  2075.     BX:SI = address of remote memory
  2076.     CX = length (<=1024 bytes)
  2077.     DS:DX -> node ID, 12 bytes blank-padded
  2078.     DS:DI -> area to receive remote memory image
  2079. Return: CF clear if successful
  2080.         CX = amount of memory copied to DS:SI
  2081.     CF set on error
  2082.         AX = error code (see #2989)
  2083. --------b-6F14--BP0012-----------------------
  2084. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGETDS" - INSTALL VALUES IN FREE VECTOR
  2085.     AH = 14h
  2086.     BP = 0012h (driver ID for V_SYSTEM)
  2087.     ES:DI -> new CS:IP entry point
  2088. Return: AH = status (00h) (see #2993)
  2089.     BP,DS destroyed
  2090. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2091.       call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX;
  2092.       the routine should adjust BX and return the new value.  If the
  2093.       SF_INIT call returns with error code FEh, the power-on self-test
  2094.       sequence will be called.
  2095. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h
  2096. SeeAlso: AH=16h/BP=0012h
  2097. --------N-6F1501-----------------------------
  2098. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  2099.     AX = 1501h
  2100.     BX = zero-based index
  2101.     DS:SI -> node ID, 12 bytes blank-padded
  2102.     ES:DI -> 85-byte buffer for shared device table entry (see #3023)
  2103. Return: CF clear if successful
  2104.         ES:DI buffer contains shared device table entry of BXth device
  2105.     CF set on error
  2106.         AX = error code (see #2989)
  2107. SeeAlso: AX=1502h,AX=1503h,AX=9501h
  2108.  
  2109. Format of 10NET shared device table entry:
  2110. Offset    Size    Description    (Table 3023)
  2111.  00h  8 BYTEs    device
  2112.  08h  8 BYTEs    alias
  2113.  10h 64 BYTEs    path
  2114.  50h  8 BYTEs    password
  2115.  58h    BYTE    access
  2116.  59h  4 BYTEs    mask
  2117. --------N-6F1502-----------------------------
  2118. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  2119.     AX = 1502h
  2120.     DS:SI -> node ID, 12 bytes blank-padded
  2121.     ES:DI -> valid shared device table entry
  2122. Return: CF clear if successful
  2123.     CF set on error
  2124.         AX = error code (see #2989)
  2125. SeeAlso: AX=1501h,AX=1503h,AX=9502h
  2126. --------N-6F1503-----------------------------
  2127. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  2128.     AX = 1503h
  2129.     BX = zero-based index
  2130.     DS:SI -> node ID, 12 bytes blank-padded
  2131. Return: CF clear if successful
  2132.     CF set on error
  2133.         AX = error code (see #2989)
  2134. SeeAlso: AX=1501h,AX=1502h,AX=9503h
  2135. --------N-6F16-------------------------------
  2136. INT 6F - 10NET v5.0 - "GL WHO" - ???
  2137.     AH = 16h
  2138.     ???
  2139. Return: ???
  2140. SeeAlso: AH=0Dh
  2141. --------b-6F16--BP0012-----------------------
  2142. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGLBDS" - INSTALL VALUES IN FREE VECTOR
  2143.     AH = 16h
  2144.     BP = 0012h (driver ID for V_SYSTEM)
  2145.     ES:DI -> new CS:IP entry point
  2146. Return: AH = status (00h) (see #2993 at INT 6F/AH=00h"HP Vectra")
  2147.     BP,DS destroyed
  2148. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2149.       call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global
  2150.       data area.  If the SF_INIT call returns with error code FEh, the
  2151.       power-on self-test sequence will be called.
  2152. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=10h/BP=0012h,AH=12h/BP=0012h
  2153. SeeAlso: AH=14h/BP=0012h,AH=18h/BP=0012h
  2154. --------N-6F17-------------------------------
  2155. INT 6F - 10NET v3.3+ - MOUNT
  2156.     AH = 17h
  2157.     AL = local drive number (0=A:)
  2158.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  2159.     DS:DX -> node ID, 12 bytes blank-padded
  2160. Return: CF clear if successful
  2161.     CF set on error
  2162.         AX = error code (see #2989)
  2163. SeeAlso: AH=18h
  2164. --------N-6F18-------------------------------
  2165. INT 6F - 10NET v3.3+ - UNMOUNT
  2166.     AH = 18h
  2167.     AL = local drive number (0=A:)
  2168.     BL = type
  2169.         00h        disk
  2170.         01h-03h LPTn
  2171.         04h,05h COMx
  2172. Return: CF clear if successful
  2173.     CF set on error
  2174.         AX = error code (see #2989)
  2175. SeeAlso: AH=17h
  2176. --------b-6F18--BP0012-----------------------
  2177. INT 6F - HP Vectra EX-BIOS - "F_INS_FIND" - FIND DRIVER BY ATTRIBUTES
  2178.     AH = 18h
  2179.     BP = 0012h (driver ID for V_SYSTEM)
  2180.     AL = sense of test (00h equal, 02h non-equal)
  2181.     BX = AND mask
  2182.     DX = pattern
  2183.     SI = first vector address to search
  2184.     DI = offset in HP header of field to test
  2185. Return: AH = status (00h,FEh) (see #2993 at INT 6F/AH=00h"HP Vectra")
  2186.     BP,DS destroyed
  2187.     ---if AH=00h---
  2188.     SI = first matching vector address
  2189. Desc:    compare successive drivers' header fields starting at address SI
  2190.       until the header field AND BX is either equal or non-equal to DX
  2191. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=10h/BP=0012h
  2192. SeeAlso: AH=12h/BP=0012h,AH=16h/BP=0012h
  2193. --------N-6F19-------------------------------
  2194. INT 6F U - 10NET v5.0 - AUDIT
  2195.     AH = 19h
  2196.     ???
  2197. Return: ???
  2198. SeeAlso: AH=99h
  2199. --------N-6F1A-------------------------------
  2200. INT 6F U - 10NET v5.0 - "BULL" - ???
  2201.     AH = 1Ah
  2202.     ???
  2203. Return: ???
  2204. --------N-6F1B-------------------------------
  2205. INT 6F U - 10NET v5.0 - "GMOUNT" - ???
  2206.     AH = 1Bh
  2207.     ???
  2208. Return: ???
  2209. --------N-6F1C-------------------------------
  2210. INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
  2211.     AH = 1Ch
  2212.     ???
  2213. Return: ???
  2214. --------N-6F1D-------------------------------
  2215. INT 6F U - 10NET v5.0 - "TABDATA" - ???
  2216.     AH = 1Dh
  2217.     ???
  2218. Return: ???
  2219. --------N-6F1E-------------------------------
  2220. INT 6F U - 10NET v5.0 - "SCHED" - ???
  2221.     AH = 1Eh
  2222.     ???
  2223. Return: ???
  2224. --------b-6F1E--BP0012-----------------------
  2225. INT 6F - HP Vectra EX-BIOS - "F_RAM_GET" - GET EX-BIOS FREE RAM AREA
  2226.     AH = 1Eh
  2227.     BP = 0012h (driver ID for V_SYSTEM)
  2228. Return: AH = status (00h) (see #2993 at INT 6F/AH=00h"HP Vectra")
  2229.     BX = last-used DS
  2230.     DX = maximum DS
  2231.     BP,DS destroyed
  2232. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=20h/BP=0012h,AH=22h/BP=0012h
  2233. --------N-6F1F-------------------------------
  2234. INT 6F U - 10NET v5.0 - "WHOAMI" - ???
  2235.     AH = 1Fh
  2236.     ???
  2237. Return: ???
  2238. --------N-6F20-------------------------------
  2239. INT 6F U - 10NET v5.0 - ???
  2240.     AH = 20h
  2241.     ???
  2242. Return: ???
  2243. --------b-6F20--BP0012-----------------------
  2244. INT 6F - HP Vectra EX-BIOS - "F_RAM_RET" - RESERVE EX-BIOS MEMORY
  2245.     AH = 20h
  2246.     BP = 0012h (driver ID for V_SYSTEM)
  2247.     BX = new value for "last-used DS"
  2248.     DX = new value for "maximum DS"
  2249. Return: AH = status (00h) (see #2993 at INT 6F/AH=00h"HP Vectra")
  2250.     BP,DS destroyed
  2251. Note:    the F_INS_FIXGETDS and F_INS_FREEGETDS functions
  2252.       (see AH=0Eh/BP=0012h,AH=14h/BP=0012h) also modify the values returned
  2253.       by this call, requiring care if both methods are used to allocate
  2254.       memory
  2255. SeeAlso: AH=00h"HP Vectra",AH=0Eh/BP=0012h,AH=14h/BP=0012h,AH=1Eh/BP=0012h
  2256. --------N-6F21-------------------------------
  2257. INT 6F U - 10NET v5.0 - ???
  2258.     AH = 21h
  2259.     ???
  2260. Return: ???
  2261. --------N-6F22-------------------------------
  2262. INT 6F U - 10NET v5.0 - ???
  2263.     AH = 22h
  2264.     ???
  2265. Return: ???
  2266. --------b-6F22--BP0012-----------------------
  2267. INT 6F - HP Vectra EX-BIOS - "F_CMOS_GET" - READ CMOS MEMORY
  2268.     AH = 22h
  2269.     BP = 0012h (driver ID of V_SYSTEM)
  2270.     BL = address of CMOS byte to read
  2271. Return: AH = status (see #2993 at AH=00h"HP Vectra")
  2272.     AL = byte read
  2273.     BP,DS destroyed
  2274. Note:    supported by ES, QS, and RS series HP Vectras
  2275. SeeAlso: AH=00h"HP Vectra",AH=1Eh/BP=0012h,AH=24h/BP=0012h
  2276. --------b-6F24--BP0012-----------------------
  2277. INT 6F - HP Vectra EX-BIOS - "F_CMOS_RET" - WRITE CMOS MEMORY
  2278.     AH = 24h
  2279.     BP = 0012h (driver ID of V_SYSTEM)
  2280.     BL = address of CMOS byte to write
  2281.     AL = new value
  2282. Return: AH = status (see #2993)
  2283.     BP,DS destroyed
  2284. Note:    updates the CMOS checksum fields (both IBM-standard and HP checksums)
  2285. SeeAlso: AH=00h"HP Vectra",AH=22h/BP=0012h
  2286. --------b-6F2A--BP0012-----------------------
  2287. INT 6F - HP Vectra EX-BIOS - "F_YIELD" - GIVE UP CPU TO OTHER TASKS
  2288.     AH = 2Ah
  2289.     BP = 0012h (driver ID of V_SYSTEM)
  2290. Return: AH = status (see #2993)
  2291.     BP,DS destroyed
  2292. Note:    this is a hook for multitasking systems
  2293. SeeAlso: AH=00h"HP Vectra",INT 15/AX=1000h,INT 2F/AX=1680h
  2294. --------b-6F30--BP0012-----------------------
  2295. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_ENABLE" - TURN ON KEYCLICKS
  2296.     AH = 30h
  2297.     BP = 0012h (driver ID of V_SYSTEM)
  2298. Return: AH = status (see #2993 at AH=00h"HP Vectra")
  2299.     BP,DS destroyed
  2300. Desc:    enables keyclicks and flushes any pending keyclicks
  2301. SeeAlso: AH=32h/BP=0012h,AH=34h/BP=0012h,AH=36h/BP=0012h
  2302. --------b-6F32--BP0012-----------------------
  2303. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_DISABLE" - TURN OFF KEYCLICKS
  2304.     AH = 32h
  2305.     BP = 0012h (driver ID of V_SYSTEM)
  2306. Return: AH = status (see #2993)
  2307.     BP,DS destroyed
  2308. Desc:    disables keyclicks and flushes any pending keyclicks
  2309. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=38h/BP=0012h
  2310. --------b-6F34--BP0012-----------------------
  2311. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK" - GENERATE KEYCLICK
  2312.     AH = 34h
  2313.     BP = 0012h (driver ID of V_SYSTEM)
  2314. Return: AH = status (see #2993)
  2315.     BP,DS destroyed
  2316. Desc:    generate a keyclick if fewer than four clicks are already pending
  2317. Note:    if keyclicks are already pending, the remaining click count is
  2318.       incremented and the function returns immediately
  2319. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=36h/BP=0012h,AH=3Ah/BP=0012h
  2320. --------b-6F36--BP0012-----------------------
  2321. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_ENABLE" - ENABLE BEEPS
  2322.     AH = 36h
  2323.     BP = 0012h (driver ID of V_SYSTEM)
  2324. Return: AH = status (see #2993 at AH=00h"HP Vectra")
  2325.     BP,DS destroyed
  2326. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=34h/BP=0012h,AH=38h/BP=0012h
  2327. --------b-6F38--BP0012-----------------------
  2328. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_DISABLE" - DISABLE BEEPS
  2329.     AH = 38h
  2330.     BP = 0012h (driver ID of V_SYSTEM)
  2331. Return: AH = status (see #2993)
  2332.     BP,DS destroyed
  2333. SeeAlso: AH=00h"HP Vectra",AH=32h/BP=0012h,AH=36h/BP=0012h
  2334. --------b-6F3A--BP0012-----------------------
  2335. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP" - SOUND BEEP WITH CURRENT VALUES
  2336.     AH = 3Ah
  2337.     BP = 0012h (driver ID of V_SYSTEM)
  2338. Return: AH = status (see #2993 at AH=00h"HP Vectra")
  2339.     BP,DS destroyed
  2340. Desc:    make a sound of the frequency and duration defined in the EX-BIOS
  2341.       global data area (see #2997)
  2342. SeeAlso: AH=00h"HP Vectra",AH=34h/BP=0012h,AH=36h/BP=0012h,AH=38h/BP=0012h
  2343. SeeAlso: AH=3Ch/BP=0012h,AH=3Eh/BP=0012h
  2344. --------b-6F3C--BP0012-----------------------
  2345. INT 6F - HP Vectra EX-BIOS - "F_SND_SET_BEEP" - SET BEEP FREQUENCY AND DURATION
  2346.     AH = 3Ch
  2347.     BP = 0012h (driver ID of V_SYSTEM)
  2348.     BX = frequency in Hz (1-25000, 0 = off)
  2349.     DX = duration in 10-microsecond increments
  2350. Return: AH = status (see #2993)
  2351.     BP,DS destroyed
  2352. SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Eh/BP=0012h,#2997
  2353. --------b-6F3E--BP0012-----------------------
  2354. INT 6F - HP Vectra EX-BIOS - "F_SND_TONE" - SOUND TONE WITH FREQ AND DURATION
  2355.     AH = 3Eh
  2356.     BP = 0012h (driver ID of V_SYSTEM)
  2357.     BX = frequency in Hz (1-25000, 0 = off)
  2358.     DX = duration in 10-microsecond increments
  2359. Return: AH = status (see #2993)
  2360.     BP,DS destroyed
  2361. SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Ch/BP=0012h,AH=40h/BP=0012h
  2362. --------b-6F40--BP0012-----------------------
  2363. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_FREE_INDEX" - FIND FREE STRING INDEX
  2364.     AH = 40h
  2365.     BP = 0012h (driver ID of V_SYSTEM)
  2366. Return: AH = status (see #2993)
  2367.     BX = next free string index
  2368.     BP,DS destroyed
  2369. Desc:    get the next string index available to user programs
  2370. SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=44h/BP=0012h,AH=46h/BP=0012h
  2371. --------b-6F42--BP0012-----------------------
  2372. INT 6F - HP Vectra EX-BIOS - "F_STR_DEL_BUCKET" - DEL HEADER FROM BUCKET LIST
  2373.     AH = 42h
  2374.     BP = 0012h (driver ID of V_SYSTEM)
  2375.     ES:DI -> bucket header (see #3024)
  2376. Return: AH = status (00h,FEh) (see #2993 at AH=00h"HP Vectra")
  2377.     BP,DS destroyed
  2378. SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=44h/BP=0012h
  2379.  
  2380. Format of HP Vectra EX-BIOS bucket header:
  2381. Offset    Size    Description    (Table 3024)
  2382.  00h    DWORD    pointer to next bucket header (FFFFh:FFFFh if last)
  2383.  04h    WORD    upper bound on string index
  2384.  06h    WORD    lower bound on string index
  2385.  08h    DWORD    pointer to array of string offset pointers
  2386.  0Ch    WORD    segment of strings
  2387. Note:    the strings pointed at by the offset pointers are byte-counted ASCIZ
  2388.       strings
  2389. --------b-6F44--BP0012-----------------------
  2390. INT 6F - HP Vectra EX-BIOS - "F_STR_PUT_BUCKET" - ADD HEADER TO BUCKET HDR LIST
  2391.     AH = 44h
  2392.     BP = 0012h (driver ID of V_SYSTEM)
  2393.     ES:DI -> bucket header (see #3024)
  2394. Return: AH = status (00h) (see #2993)
  2395.     BP,DS destroyed
  2396. SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=46h/BP=0012h
  2397. --------b-6F46--BP0012-----------------------
  2398. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_STRING" - FIND STRING IN BUCKET LIST
  2399.     AH = 46h
  2400.     BP = 0012h (driver ID of V_SYSTEM)
  2401.     BX = string index
  2402. Return: AH = status (00h,other) (see #2993)
  2403.     BP,DS destroyed
  2404.     ---if successful---
  2405.     CX = length of string (excluding count byte and terminating NUL)
  2406.     DS:SI -> header for string
  2407.     ES:DI -> found string
  2408. SeeAlso: AH=00h"HP Vectra",AH=44h/BP=0012h,AH=48h/BP=0012h
  2409. --------b-6F48--BP0012-----------------------
  2410. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_INDEX" - GET INDEX FOR STRING
  2411.     AH = 48h
  2412.     BP = 0012h (driver ID of V_SYSTEM)
  2413.     ES:DI -> ASCIZ string
  2414. Return: AH = status (00h,other) (see #2993 at AH=00h"HP Vectra")
  2415.     BP,DS destroyed
  2416.     ---if successful---
  2417.     BX = index for the given string
  2418. SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=46h/BP=0012h
  2419. --------A-6F636FBX6D70-----------------------
  2420. INT 6F - Clara Empricost - TSR Version - INSTALLATION CHECK
  2421.     AX = 636Fh ('co')
  2422.     BX = 6D70h ('mp')
  2423.     CX = 696Eh ('in')
  2424.     SS:DX -> WORD to set if installed
  2425. Return: SS:DX word set to 636Fh if installed
  2426. Program: Condition List Action Rejection Algorithm for the Evaluation
  2427.       of Music at Pseudo-Random Idea COnstruction STage
  2428.       (CLARA EMPRICOST) is an experimental program by Silas Brown
  2429. SeeAlso: AX=636Fh/BX=6D70h"UNINSTALL"
  2430. --------A-6F636FBX6D70-----------------------
  2431. INT 6F - Clara Empricost - TSR Version - UNINSTALL
  2432.     AX = 636Fh ('co')
  2433.     BX = 6D70h ('mp')
  2434.     CX = 6F73h ('os')
  2435. Return: nothing -- call installation check to determine whether successful
  2436. Program: Condition List Action Rejection Algorithm for the Evaluation
  2437.       of Music at Pseudo-Random Idea COnstruction STage
  2438.       (CLARA EMPRICOST) is an experimental program by Silas Brown
  2439. Notes:     Saves any unfinished task and prevents processing of
  2440.        new tasks, even if can't uninstall
  2441.      If INT 28h or INT 6Fh have been chained since installation,
  2442.        returns without changing interrupts or freeing memory
  2443.      do not call while DOS is active (i.e. InDOS flag is nonzero or INT 28
  2444.        is active and InDOS > 1)
  2445. SeeAlso: AX=636Fh/BX=6D70h"INSTALLATION CHECK"
  2446. --------N-6F80-------------------------------
  2447. INT 6F - 10NET v5.0 - LOGIN
  2448.     AH = 80h
  2449.     DS:DX -> login record (see #3025)
  2450. Return: CF clear if successful
  2451.         BL = number of days until password expires (00h = never)
  2452.         CL = security level
  2453.     CF set on error
  2454.         AX = status (see #2989)
  2455. SeeAlso: AH=00h,AH=81h
  2456.  
  2457. Format of 10NET login record:
  2458. Offset    Size    Description    (Table 3025)
  2459.  00h  8 BYTEs    user name
  2460.  08h  8 BYTEs    password
  2461.  10h 15 BYTEs    server node ID
  2462.  1Fh  8 BYTEs    new password
  2463.  27h    BYTE    invoke mode (00h command line, 01h interactive)
  2464. --------N-6F81-------------------------------
  2465. INT 6F - 10NET v5.0 - LOGOUT
  2466.     AH = 81h
  2467.     DS:DX -> server node ID (DX=0000h for universal logout)
  2468. Return: AX = status (see #2989)
  2469. SeeAlso: AH=01h,AH=80h
  2470. --------N-6F8A-------------------------------
  2471. INT 6F - 10NET v5.0 - CHAT
  2472.     AH = 8Ah
  2473.     DS:BX -> chat parameters (see #3026)
  2474.     DS:DX -> chat message (see #3027)
  2475. Return: CF clear if successful
  2476.     CF set on error
  2477.         AX = status (see #2989)
  2478. SeeAlso: AH=0Ah
  2479.  
  2480. Format of 10NET chat parameters:
  2481. Offset    Size    Description    (Table 3026)
  2482.  00h  8 BYTEs    sender's user name
  2483.  08h  8 BYTEs    destination user name
  2484.  10h 15 BYTEs    destination node (0 if broadcast-style chat)
  2485.  
  2486. Format of 10NET chat message:
  2487. Offset    Size    Description    (Table 3027)
  2488.  00h    WORD    message length
  2489.  02h  N BYTEs    chat message contents
  2490. --------N-6F8D-------------------------------
  2491. INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
  2492.     AH = 8Dh
  2493.     BX = service mask (see #3028)
  2494.     CX = length of buffer
  2495.     DS:DX -> buffer for array of Who data structures (see #3029)
  2496. Return: CF clear if successful
  2497.         CX = number of nodes matching service mask
  2498.         DS:DX buffer filled
  2499.     CF set on error
  2500.         AX = status (see #2989)
  2501. SeeAlso: AH=0Dh
  2502.  
  2503. Bitfields for 10NET service mask:
  2504. Bit(s)    Description    (Table 3028)
  2505.  0    workstation
  2506.  1    file server
  2507.  2    print server
  2508.  3    de-spool server
  2509.  
  2510. Format of 10NET Who data structure:
  2511. Offset    Size    Description    (Table 3029)
  2512.  00h  8 BYTEs    user name
  2513.  08h 15 BYTEs    node ID
  2514.  17h  3 BYTEs    unique portion of Ethernet address
  2515.  1Ah    BYTE    Who group number
  2516.  1Bh    WORD    service mask (see #3028)
  2517.  1Dh    DWORD    serial number
  2518.  21h    BYTE    maximum concurrent users with same serial number allowed on net
  2519.  22h    BYTE    chat mask (see #3030)
  2520.  23h    BYTE    internal system bits (see #3031)
  2521.  24h  9 BYTEs    version number in format MM.mm.xxx
  2522.  2Dh    BYTE    number of shared directories
  2523.  2Eh    BYTE    number of shared printer queues
  2524.  
  2525. Bitfields for 10NET chat mask:
  2526. Bit(s)    Description    (Table 3030)
  2527.  0    chat permitted
  2528.  1    bell enabled
  2529.  2    chat keyboard initiated
  2530.  3    in INT 16 handler
  2531.  4    in Get Input
  2532.  5    display has timed out
  2533.  6    chat is idle
  2534.  
  2535. Bitfields for 10NET internal system bits:
  2536. Bit(s)    Description    (Table 3031)
  2537.  0    submit permitted
  2538.  1    submit initiated
  2539.  2    submit executing
  2540.  3    internal client call/chat/spool/autospool
  2541.  4    in spool termination
  2542.  5    print permitted
  2543.  6    waiting for keyboard input
  2544. --------N-6F9501-----------------------------
  2545. INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
  2546.     AX = 9501h
  2547.     BX = zero-based index
  2548.     DS:SI -> server's node ID
  2549.     ES:DI -> buffer for shared device structure (see #3032)
  2550. Return: CF clear if successful
  2551.     CF set on error
  2552.         AX = status (see #2989)
  2553. SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h
  2554.  
  2555. Format of 10NET shared device structure:
  2556. Offset    Size    Description    (Table 3032)
  2557.  00h  8 BYTEs    alias
  2558.  08h    BYTE    type (02h modem, 03h print queue, 04h directory)
  2559.  09h    BYTE    access rights
  2560.         bit 0: read
  2561.         bit 1: write
  2562.         bit 2: create
  2563.  0Ah  8 BYTEs    password
  2564.  12h 32 BYTEs    comment
  2565. ---directory---
  2566.  32h 64 BYTEs    pathname of shared directory
  2567. ---print queue---
  2568.  32h    BYTE    notification bit mask (see #3033)
  2569.  33h    BYTE    job control bit mask (see #3034)
  2570.  34h    WORD    number of days to retain file
  2571.  36h    WORD    test print length
  2572.  38h    BYTE    number of copies to print
  2573.  39h    BYTE    compression algorithm
  2574.  3Ah    BYTE    tab width (00h = don't expand)
  2575.  3Bh    BYTE    priority
  2576.  3Ch    WORD    time to open queue (FFFFh = always)
  2577.  3Eh    WORD    time to close queue
  2578.  40h    WORD    pause following queue switch, in clock ticks
  2579.  42h    WORD    pause between print jobs, in clock ticks
  2580.  44h    BYTE    associate queue file existence mask
  2581.         bit 0: queue switch file exists
  2582.         bit 1: initiate file exists
  2583.         bit 2: abort file exists
  2584.  45h  6 BYTEs    character sequence for page eject
  2585.  4Bh    BYTE    status of print queue
  2586.         bit 0: queue is closed
  2587.  4Ch    WORD    number of jobs on queue
  2588.  4Eh    WORD    offset of next print job to be dispatched (FFFFh = none)
  2589.  50h    BYTE    number of print devices in printer pool
  2590.  51h    WORD    offset of first print device structure (FFFFh if empty)
  2591.  
  2592. Bitfields for notification flags:
  2593. Bit(s)    Description    (Table 3033)
  2594.  0    user at print start
  2595.  1    operator at start, with reply
  2596.  2    user at print completion
  2597.  3    operator at completion, with reply
  2598.  4    user on queue switch
  2599.  5    operator on queue switch, with reply
  2600.  6    user on print error
  2601.  
  2602. Bitfields for 10NET job control mask:
  2603. Bit(s)    Description    (Table 3034)
  2604.  0    print banner page
  2605.  1    eject page at end of job
  2606.  2    mark as "held" (queue but don't print)
  2607.  3    rush job (queue at top)
  2608.  4    overwrite file with zeros before deletion
  2609.  5    hyperspool if possible
  2610. --------N-6F9502-----------------------------
  2611. INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
  2612.     AX = 9502h
  2613.     DS:SI -> server's node ID
  2614.     ES:DI -> shared device structure (see #3032)
  2615. Return: CF clear if successful
  2616.     CF set on error
  2617.         AX = status (see #2989)
  2618. SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h
  2619. --------N-6F9503-----------------------------
  2620. INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
  2621.     AX = 9503h
  2622.     BX = zero-based index
  2623.     DS:SI -> server's node ID
  2624. Return: CF clear if successful
  2625.     CF set on error
  2626.         AX = status (see #2989)
  2627. SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h
  2628. --------N-6F9504-----------------------------
  2629. INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
  2630.     AX = 9504h
  2631.     BX = zero-based shared device index
  2632.     CX = zero-based user index
  2633.     DS:SI -> server's node ID
  2634. Return: CF clear if successful
  2635.         ES:DI -> node ID of the CX'th user of the BX'th device
  2636.     CF set on error
  2637.         AX = status (see #2989)
  2638. SeeAlso: AX=9501h,AX=9502h,AX=9503h
  2639. --------N-6F99-------------------------------
  2640. INT 6F - 10NET v5.0 - AUDIT
  2641.     AH = 99h
  2642.     DS:SI -> server's node ID
  2643.     ES:DI -> data to be appended to audit trail file (max 106 bytes)
  2644. Return: CF clear if successful
  2645.     CF set on error
  2646.         AX = status (see #2989)
  2647. SeeAlso: AH=19h,AH=9Ch
  2648. --------N-6F9C-------------------------------
  2649. INT 6F - 10NET v5.0 - GET LOGIN LIST
  2650.     AH = 9Ch
  2651.     BX = zero-based index
  2652. Return: CF clear if successful
  2653.         DS:DI -> BX'th node ID that caller's machine is logged into
  2654.     CF set on error
  2655.         AX = status (see #2989)
  2656. --------H-70---------------------------------
  2657. INT 70 C - IRQ8 - CMOS REAL-TIME CLOCK
  2658. Desc:    this interrupt is called when the real-time clock chip generates an
  2659.       alarm or periodic interrupt, among others.  The periodic interrupt
  2660.       occurs 1024 times per second.
  2661. Notes:    many BIOSes turn off the periodic interrupt in the INT 70h handler
  2662.       unless in an event wait (see INT 15/AH=83h,INT 15/AH=86h).
  2663.     may be masked by setting bit 0 on I/O port A1h
  2664. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  2665. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview",MEM FEE00320h
  2666. --------v-70---------------------------------
  2667. INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
  2668. Note:    the virus sets this interrupt to be the same as INT 21, and then
  2669.       performs only INT 70 calls; since INT 70 is also generated by the
  2670.       real-time clock on the PC/AT and higher, this could cause random
  2671.       actions on an infected system
  2672. SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"
  2673. --------H-71---------------------------------
  2674. INT 71 C - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  2675. Notes:    may be masked by setting bit 1 on I/O port A1h
  2676.     the default BIOS handler invokes INT 0A for compatibility, since the
  2677.       pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  2678.       AT expansion bus.
  2679.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2680.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2681.       process
  2682. SeeAlso: INT 0A,INT 59"IRQ9"
  2683. --------H-72---------------------------------
  2684. INT 72 C - IRQ10 - RESERVED
  2685. Note:    may be masked by setting bit 2 on I/O port A1h
  2686. SeeAlso: INT 5A"IRQ10"
  2687. --------H-73---------------------------------
  2688. INT 73 C - IRQ11 - RESERVED
  2689. Note:    may be masked by setting bit 3 on I/O port A1h
  2690. SeeAlso: INT 5B"IRQ11"
  2691. --------H-74---------------------------------
  2692. INT 74 C - IRQ12 - POINTING DEVICE (PS)
  2693. Notes:    may be masked by setting bit 4 on I/O port A1h
  2694.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2695.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2696.       process
  2697. SeeAlso: INT 33/AX=0000h,INT 33/AX=0024h,INT 5C"NetBIOS"
  2698. --------H-75---------------------------------
  2699. INT 75 C - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  2700. Desc:    redirected to INT 02 by the BIOS, for compatibility with the PC
  2701. Notes:    may be masked by setting bit 5 on I/O port A1h
  2702.     not all clones wire the coprocessor to generate this IRQ; some systems
  2703.       generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  2704.       (see INT 10"COPROCESSOR")
  2705.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2706.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2707.       process
  2708. SeeAlso: INT 10"COPROCESSOR",INT 5D"IRQ13"
  2709. --------H-76---------------------------------
  2710. INT 76 C - IRQ14 - HARD DISK CONTROLLER OPERATION COMPLETE (AT and later)
  2711. Notes:    may be masked by setting bit 6 on I/O port A1h
  2712.     on the PS/2, this interrupt is designed to be shared with other
  2713.       devices that produce an operation-complete interrupt, though
  2714.       the only current user is the hard disk
  2715. SeeAlso: INT 0E"IRQ6",INT 15/AH=91h,INT 5E"IRQ14"
  2716. --------H-77---------------------------------
  2717. INT 77 C - IRQ15 - RESERVED (AT,PS)
  2718. Note:    may be masked by setting bit 7 on I/O port A1h
  2719. SeeAlso: INT 5F"IRQ15"
  2720. --------H-77---------------------------------
  2721. INT 77 C - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  2722. Note:    may be masked by setting bit 7 on I/O port A1h
  2723. SeeAlso: INT 15/AX=4600h,INT 5F"IRQ15"
  2724. --------E-78---------------------------------
  2725. INT 78 - UofSalford DBOS DOS extender - API
  2726.     AH = function
  2727.         00h (PB) display 32-bit memory specified by command argument
  2728.         01h (PT) display 32-bit instruction(s) specified by command arg
  2729.         02h specify offset to subsequent PB and PT commands
  2730.         03h switch to protected mode
  2731.         DWORD following INT instruction point to map; protected-mode
  2732.               entry point is immediately following the DWORD
  2733.         Return: never
  2734.         Note:    if bit 31 of the map address is set, only a stub was
  2735.               loaded by DOS and DBOS will load the entire program
  2736.         04h specify that subsequent load (AH=03h) should leave program in
  2737.           memory
  2738.         05h release program from memory
  2739.         06h set break point at address and option count from commandline
  2740.         07h resume program execution
  2741.         08h single-step program
  2742.         09h set read/write breakpoint using 386 debug registers
  2743.         0Ah set write breakpoint using 386 debug register
  2744.         0Bh set memory byte to new value
  2745.         0Ch display CPU registers
  2746.         0Dh run until specified program address reached
  2747.         0Fh print trace from program map
  2748.         10h specify an offset using a map symbol
  2749.         14h print memory without any offset
  2750.         18h switch DBOS into/out of test mode (ON/OFF commandline args)
  2751.         1Dh get address of real/protected-mode communication buffer
  2752.         Return: ES:BP -> comm buffer
  2753.         1Eh set real-mode memory size (specify how much real-mode memory
  2754.           to leave free when running FTN77 programs)
  2755.         22h uninstall DBOS
  2756.         24h force DBOS to emulate coprocessor instructions
  2757.         26h set named DBOS switches from commandline
  2758.         27h reset named DBOS switched from commandline
  2759.         2Ah set list of dynamic link libraries to contents of commandline
  2760.           file
  2761.         35h specify that subsequent load (AH=03h) should stop at first
  2762.           instruction
  2763. Return: ???
  2764. Notes:    DBOS supports functions 00h through 50h; many of these functions
  2765.       provide a low-level debugging interface
  2766.     command arguments are read from the calling program's PSP
  2767. SeeAlso: INT 79"DBOS"
  2768. Index:    uninstall;DBOS DOS extender
  2769. --------E-78---------------------------------
  2770. INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
  2771. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  2772.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  2773. Notes:    this vector is overwritten when GO32 starts but is not restored by
  2774.       early versions of the extender
  2775.     the newest versions of GO32 dynamically allocate the vectors used
  2776.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  2777. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  2778. --------A-78---------------------------------
  2779. INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND
  2780.     AX = function
  2781.         0001h begin plot
  2782.         BX = file level
  2783.             0000h ASCII file
  2784.             0001h binary file
  2785.             0002h AutoCAD DXB file
  2786.             0003h installed ADI driver
  2787.         0002h end plot (close plotter)
  2788.         0003h move (pen up)
  2789.         BX = new X position
  2790.         CX = new Y position
  2791.         0004h move (pen down)
  2792.         BX = new X position
  2793.         CX = new Y position
  2794.         0005h select pen
  2795.         BX = pen number
  2796.         0006h select drawing speed
  2797.         BX = drawing speed N
  2798.         0007h select line style
  2799.         BX = line style N
  2800.         0008h raise pen
  2801.         0009h abort plot
  2802. Return: AX = 0000h (may be used for driver status in future releases)
  2803. SeeAlso: INT 79"AutoCAD",INT 7A/AX=0001h"AutoCAD",INT 7B/AX=8001h"AutoCAD"
  2804. --------d-78---------------------------------
  2805. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  2806. SeeAlso: INT 79"ADP-60"
  2807. --------s-78-------------------------------
  2808. INT 78 - ULTRAMID - API
  2809.     AX = function
  2810.     --- digital functions ---
  2811.         0000h start digital
  2812.         ES:DI -> Sound Structure
  2813.         Return: AX = voice used
  2814.         0001h play next buffer
  2815.         ES:DI -> Sound Structure
  2816.         0002h set panning
  2817.         BX = pan
  2818.         CX = voice
  2819.         0003h set volume
  2820.         BX = volume
  2821.         CX = voice
  2822.         0004h set rate (not yet implemented)
  2823.         0005h pause digital
  2824.         CX = voice
  2825.         0006h restart digital
  2826.         CX = voice
  2827.         0007h stop digital
  2828.         CX = voice
  2829.         0008h get digital position
  2830.         CX = voice
  2831.         Return: AX:DX -> position in PC buffer
  2832.         0009h get voice status (not yet implemented)
  2833.     --- MIDI functions ---
  2834.         000Ah load MIDI patches
  2835.         ES:DI -> MIDI track just after the Mtrk header
  2836.         BX:DX = length of MIDI track
  2837.         000Bh load XMIDI patches
  2838.         ES:DI -> event buffer including the EVNT header
  2839.         000Ch load patch
  2840.         CX = MIDI number of patch
  2841.         000Dh unload patch
  2842.         CX = MIDI number of patch
  2843.         000Eh start sequence
  2844.         000Fh unload all patches
  2845.         0010h MIDI out byte
  2846.         CX = MIDI byte
  2847.         0011h MIDI out string
  2848.         CX = length
  2849.         ES:DI -> string of MIDI data
  2850.         0012h all notes off
  2851.     --- resource functions ---
  2852.         0013h allocate memory
  2853.         BX:DX = size of GUS memory needed
  2854.         Return: AX:DX = address of memory, or 0000:0000 if not avaiable
  2855.         0014h free memory
  2856.         BX:DX = address of memory to be freed
  2857.         0015h uninstall
  2858.         0016h sem enter
  2859.         0017h sem leave
  2860.         0018h add external semaphore
  2861.         BX:DX -> external semaphore
  2862.         0019h clear external semaphore
  2863.         BX:DX -> external semaphore
  2864.         001Ah application start
  2865.         001Bh application end
  2866. Program: UltraMid is a TSR from Advanced Gravis to play MIDI and digital data
  2867.        through the Gravis UltraSound (GUS)
  2868. Range:    INT 78 to INT 7F
  2869. Notes:    the installation check is testing for the signature "ULTRAMID" at
  2870.       offset 0103h in the interrupt handler's segment
  2871. SeeAlso: INT 2F/AX=CD00h"ULTRAMID",INT 7E"SBOS"
  2872. Index:    uninstall;UltraMID
  2873. --------d-7800-------------------------------
  2874. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  2875.     AH = 00h
  2876.     DX = interface board I/O port
  2877. Return: CF set on error
  2878.         AL = error code (see #3035)
  2879. Note:    if this routine is not called, the port is the driver's default
  2880.       (usually 0280h or 0300h)
  2881.     an installation check is performed by TARGA.DEV upon initialization
  2882.       by checking for the string "SCSI" at offset 03h into the interrupt
  2883.       handler
  2884. SeeAlso: AH=01h,AH=02h
  2885. Index:    installation check;TARGA.DEV
  2886.  
  2887. (Table 3035)
  2888. Values for TARGA.DEV error code:
  2889.  00h    illegal command given to SCSI code
  2890.  01h    invalid I/O port specified (must be from 100H to 3F8H, and must be on
  2891.       an 8-port boundary)
  2892.  02h    invalid DMA channel specified (must be from 1 to 3)
  2893.  03h    invalid SCSI board number specified (must be from 0 to 7)
  2894.  04h    error from data register test during self-test
  2895.  05h    SCSI input signals not all 0 when SCSI RST activated
  2896.  06h    SCSI input signals not all 0 before selecting a SCSI device
  2897.  07h    BSY signal is active; SCSI bus is busy
  2898.  08h    SCSI board not selected, BSY signal did not come on in response to
  2899.       raising SEL
  2900.  09h    time-out waiting for status state, signifying end of DMA transfer
  2901. --------E-780000-----------------------------
  2902. INT 78 - HugeRealMode Driver - INSTALLATION CHECK
  2903.     AX = 0000h
  2904. Return: AX = DBCAh if installed
  2905. Program: the HugeRealMode driver was published in the German DOS Extra Nr. 20
  2906.       (1992), and makes a 4G flat address space (for both data and code)
  2907.       available to real-mode DOS programs
  2908. SeeAlso: AX=0001h
  2909. --------E-780001-----------------------------
  2910. INT 78 - HugeRealMode Driver - GET ENTRY POINT
  2911.     AX = 0001h
  2912. Return: ES:BX -> far call entry point (see #3037,#3052)
  2913. SeeAlso: AX=0000h
  2914.  
  2915. (Table 3036)
  2916. Values for HugeRealMode Server error code:
  2917.  00h    successful
  2918.  01h    unknown function
  2919.  02h    A20 disabled
  2920.  03h    A20 enabled
  2921.  04h    memory allocation error
  2922.  05h    memory not fixeable (LOCK)
  2923.  06h    memory not deallocaable
  2924.  07h    memory not moveable (UNLOCK)
  2925.  08h    change in memory allocation size not possible
  2926.  09h    file error (with .XMF-file)
  2927.  0Ah    memory error (with .XMF-file)
  2928.  0Bh    unknown procedure (currently Turbo Pascal unit only)
  2929.  
  2930. (Table 3037)
  2931. Call HugeRealMode Server "Enable A20" function with:
  2932.     AL = 00h
  2933. Return: AX = error code (see #3036)
  2934. Note:    The HugeRealMode Server requires an XMS-driver like HIMEM.SYS loaded
  2935.       before HUGEREAL (for XMS-memory allocation and A20 control). It
  2936.       utilizes some undocumented 386+ features to enable 4G code and data
  2937.       segments (flat memory model) in the CPUs real-mode. It is not
  2938.       compatible with V86-mode (as with most EMM386). For maximum speed
  2939.       and compatibility with DOS it uses a two stage interrupt model
  2940.       (see INT 78/AL=03h)
  2941. SeeAlso: #3038,#3039,#3040
  2942.  
  2943. (Table 3038)
  2944. Call HugeRealMode Server "Disable A20" function with:
  2945.     AL = 01h
  2946. Return: AX = error code (see #3036)
  2947. SeeAlso: #3037,#3039
  2948.  
  2949. (Table 3039)
  2950. Call HugeRealMode Server "Query A20 State" function with:
  2951.     AL = 02h
  2952. Return: AX = A20 state (0000h disabled, 0001h enabled)
  2953. SeeAlso: #3037,#3038
  2954.  
  2955. (Table 3040)
  2956. Call HugeRealMode Server "Enable Two-Stage Interrupt Model" function with:
  2957.     AL = 03h
  2958. Return: AX = error code (see #3036)
  2959. Notes:    If the two stage interrupt model is disabled, the IP must stay below
  2960.       1MB, because the high word of EIP is not saved correctly by the
  2961.       standard interrupt management in real mode.  Routines in extended
  2962.       memory may only be called with interrupts disabled (only usable for
  2963.       very short routines).
  2964.     If the two stage interupt model is enabled, these conventions are not
  2965.       required.  The outer (transparent) ISRs save the higher word of EIP
  2966.       in the high word of CR3 (possible modification: in memory, if this
  2967.       is not safe) and then invoke the standard ISRs.
  2968.     Because of this handling, one should use pseudo segmented code even in
  2969.       extended memory (64K blocks located on 64K boundaries) to avoid the
  2970.       misalignment of the saved EIP (in CR3). Another way is to track and
  2971.       realign CR3 each time when jumping over a 64K boundary in extended
  2972.       memory
  2973. SeeAlso: #3037,#3041
  2974.  
  2975. (Table 3041)
  2976. Call HugeRealMode Server "Disable Two-Stage Interrupt Model" function with:
  2977.     AL = 04h
  2978. Return: AX = error code (see #3036)
  2979. SeeAlso: #3037,#3040
  2980.  
  2981. (Table 3042)
  2982. Call HugeRealMode Server "Get Segment Address Of Server-Management Range" with:
  2983.     AL = 05h
  2984. Return: AX = error code (see #3036)
  2985.     ES = segment address
  2986. SeeAlso: #3052
  2987.  
  2988. (Table 3043)
  2989. Call HugeRealMode Server "Allocate Memory" function with:
  2990.     AL = 06h
  2991.     DX = length in KB
  2992. Return: AX = error code (see #3036)
  2993.     DX = handle
  2994.     EBX = start address of allocated block
  2995. SeeAlso: #3044,#3045
  2996.  
  2997. (Table 3044)
  2998. Call HugeRealMode Server "Deallocate Memory" function with:
  2999.     AL = 07h
  3000.     DX = handle
  3001. Return: AX = error code (see #3036)
  3002. SeeAlso: #3043,#3045
  3003.  
  3004. (Table 3045)
  3005. Call HugeRealMode Server "Modify Allocated Memory Size" function with:
  3006.     AL = 08h
  3007.     DX = handle
  3008.     BX = new size in KB
  3009. Return: AX = error code (see #3036)
  3010.     EBX = new address
  3011. SeeAlso: #3043,#3044
  3012.  
  3013. (Table 3046)
  3014. Call HugeRealMode Server "Load .XMF-file" function with:
  3015.     AL = 09h
  3016.     ES:BX -> filename (see #3047)
  3017. Return: AX = error code (see #3036)
  3018.     ECX = target address
  3019. Notes:    memory must be allocated before loading
  3020.     .XMF file format (eXtended Memory executable File format) is supported
  3021.       by the HugeRealMode server for easier handling of XMS-code.
  3022.     The utility CONFXMF converts .OBJ-files (.COM 'tiny' model) to
  3023.       .XMF-format
  3024. SeeAlso: #3043
  3025.  
  3026. Format of .XMF program file header:
  3027. Offset    Size    Description    (Table 3047)
  3028.  00h    DWORD    signature "XMF_"
  3029.  04h    WORD    length of programs code
  3030.  06h    WORD    count of 32bit addresses to relocate
  3031.  08h    WORD    offset to code start (releative to file start) (see #3048)
  3032.  0Ah    WORD    relocation table
  3033. Note:    each word contains a 16bit address, where a relocation has to be
  3034.       performed
  3035. SeeAlso: #3046,#3048
  3036.  
  3037. Format of .XMF-file code header:
  3038. Offset    Size    Description    (Table 3048)
  3039.  00h    WORD    count of exported functions
  3040.  02h  N PWORDs    48bit pointers (16bit segment+32bit offset) to each function
  3041.         (16bit segment is always zero)
  3042.  var        start of program's code
  3043. SeeAlso: #3046,#3047
  3044.  
  3045. (Table 3049)
  3046. Call HugeRealMode Server "Set Segment Limits" function with:
  3047.     AL = 0Ah
  3048.     BL = segment limits (see #3050)
  3049. Return: AX = error code (see #3036)
  3050. SeeAlso: #3042
  3051.  
  3052. Bitfields for HugeRealMode Server segment limits:
  3053. Bit(s)    Description    (Table 3050)
  3054.  7    CS size: 1=4GB, 0=64KB
  3055.  6-5    not used
  3056.  4    SS size: 1=4GB, 0=64KB
  3057.  3    GS size
  3058.  2    FS size
  3059.  1    ES size
  3060.  0    DS size
  3061. SeeAlso: #3049
  3062.  
  3063. (Table 3051)
  3064. Call HugeRealMode Server "Transfer Memory From DOS To XMS" function with:
  3065.     AL = 0Bh
  3066.     ES:SI = source address
  3067.     EDI = target address
  3068.     ECX = length
  3069. Return: AX = error code
  3070. SeeAlso: #3052
  3071.  
  3072. (Table 3052)
  3073. Call HugeRealMode Server "Transfer Memory From XMS To DOS" function with:
  3074.     AL = 0Ch
  3075.     ESI = source address
  3076.     ES:DI = target address
  3077.     ECX = length
  3078. Return: AX = error code
  3079. SeeAlso: #3051
  3080. --------d-7801-------------------------------
  3081. INT 78 - TARGA.DEV - GET I/O PORT
  3082.     AH = 01h
  3083. Return: DX = current interface board I/O port
  3084. SeeAlso: AH=00h,AH=03h"TARGA"
  3085. --------d-7802-------------------------------
  3086. INT 78 - TARGA.DEV - SET DMA CHANNEL
  3087.     AH = 02h
  3088.     AL = interface board DMA channel
  3089. Return: CF set on error
  3090.     AL = error code (see #3035)
  3091. Note:    if this routine is not called, the DMA channel is the driver's default
  3092.       (usually 3)
  3093. SeeAlso: AH=00h,AH=03h"TARGA"
  3094. --------d-7803-------------------------------
  3095. INT 78 - TARGA.DEV - GET DMA CHANNEL
  3096.     AH = 03h
  3097. Return: AL = current interface board DMA channel
  3098. SeeAlso: AH=01h,AH=02h
  3099. --------d-7804-------------------------------
  3100. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  3101.     AH = 04h
  3102.     AL = SCSI device number
  3103. Return: CF set on error
  3104.     AL = error code (see #3035)
  3105. Note:    if this routine is not called, the device number used is the driver's
  3106.       default (usually 0)
  3107. SeeAlso: AH=02h,AH=05h
  3108. --------d-7805-------------------------------
  3109. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  3110.     AH = 05h
  3111. Return: AL = current SCSI device number
  3112. SeeAlso: AH=03h"TARGA",AH=04h
  3113. --------d-7806-------------------------------
  3114. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  3115.     AH = 06h
  3116.     AL = new state
  3117.         00h clear early return mode
  3118.         01h set early return mode
  3119. Note:    if early return mode is set then SCSI will return with no errors
  3120.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  3121.     if this routine is not called, early return mode is cleared
  3122. SeeAlso: AH=13h,AH=14h,AH=15h
  3123. --------d-7808-------------------------------
  3124. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  3125.     AH = 08h
  3126. Return: CF set on error
  3127.     AL = error code (see #3035)
  3128. Note:    the SCSI bus is also reset
  3129. SeeAlso: AH=09h
  3130. --------d-7809-------------------------------
  3131. INT 78 - TARGA.DEV - RESET SCSI BUS
  3132.     AH = 09h
  3133. Return: AL = error code if carry set (see #3035)
  3134. SeeAlso: AH=08h
  3135. --------d-7810-------------------------------
  3136. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  3137.     AH = 10h
  3138.     DS:SI -> command bytes (see #3053)
  3139. Return: AH = SCSI status byte
  3140.     CF clear if successful
  3141.         AL = SCSI message byte
  3142.     CF set on error
  3143.         AL = error code (see #3035)
  3144. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  3145.  
  3146. Format of SCSI Command:
  3147. Offset    Size    Description    (Table 3053)
  3148.  00h    BYTE    length of command
  3149.  01h    ???    command bytes
  3150. --------d-7811-------------------------------
  3151. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  3152.     AH = 11h
  3153.     DS:SI -> command bytes (see #3054)
  3154.     ES:BX -> data storage area
  3155.     CX = number of data bytes to transfer
  3156. Return: AH = SCSI status byte
  3157.     CF clear if successful
  3158.         AL = SCSI message byte
  3159.     CF set on error
  3160.         AL = error code (see #3035)
  3161. Note:    this command receives data internally one byte at a time
  3162. SeeAlso: AH=10h,AH=13h
  3163.  
  3164. Format of TARGA.DEV SCSI Command:
  3165. Offset    Size    Description    (Table 3054)
  3166.  00h    BYTE    length of command
  3167.  01h    ???    command bytes
  3168. --------d-7812-------------------------------
  3169. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  3170.     AH = 12h
  3171.     DS:SI -> command bytes (see #3055)
  3172.     ES:BX -> data storage area
  3173.     CX = number of data bytes to transfer
  3174. Return: AH = SCSI status byte
  3175.     CF clear if successful
  3176.         AL = SCSI message byte
  3177.     CF set on error
  3178.         AL = error code (see #3035)
  3179. Note:    this command sends data internally one byte at a time
  3180. SeeAlso: AH=14h
  3181.  
  3182. Format of TARGA.DEV SCSI Command:
  3183. Offset    Size    Description    (Table 3055)
  3184.  00h    BYTE    length of command
  3185.  01h    ???    command bytes
  3186. --------d-7813-------------------------------
  3187. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  3188.     AH = 13h
  3189.     DS:SI -> command bytes (see #3056)
  3190.     ES:BX -> data storage area
  3191.     DX:CX = number of data bytes to transfer
  3192. Return: AH = SCSI status byte (if early return mode is clear)
  3193.     CF clear if successful
  3194.         AL = SCSI message byte (if early return mode is clear)
  3195.     CF set on error
  3196.         AL = error code (see #3035)
  3197. Note:    this command receives data using DMA
  3198. SeeAlso: AH=11h,AH=12h
  3199.  
  3200. Format of TARGA.DEV SCSI Command:
  3201. Offset    Size    Description    (Table 3056)
  3202.  00h    BYTE    length of command
  3203.  01h    ???    command bytes
  3204. --------d-7814-------------------------------
  3205. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  3206.     AH = 14h
  3207.     DS:SI -> command bytes (see #3057)
  3208.     ES:BX -> data storage area
  3209.     DX:CX = number of data bytes to transfer
  3210. Return: AH = SCSI status byte (if early return mode is clear)
  3211.     CF clear if successful
  3212.         AL = SCSI message byte (if early return mode is clear)
  3213.     CF set on error
  3214.         AL = error code (see #3035)
  3215. Note:    this command sends data using DMA
  3216. SeeAlso: AH=12h,AH=13h
  3217.  
  3218. Format of TARGA.DEV SCSI Command:
  3219. Offset    Size    Description    (Table 3057)
  3220.  00h    BYTE    length of command
  3221.  01h    ???    command bytes
  3222. --------d-7815-------------------------------
  3223. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  3224.     AH = 15h
  3225. Return: AH = SCSI status byte
  3226.     CF clear if successful
  3227.         AL = SCSI message byte
  3228.     CF set on error
  3229.         AL = error code (see #3035)
  3230. Note:    if AH=06h was previously called to set the early return mode, this
  3231.       function finishes a command AH=13h or AH=14h which returned before
  3232.       the last DMA transfer was finished
  3233. SeeAlso: AH=06h,AH=13h,AH=14h
  3234. --------V-79---------------------------------
  3235. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  3236. Return: CF set if no keystroke available
  3237.         AX = FFFFh
  3238.     CF clear if key pressed
  3239.         AX = keystroke
  3240. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  3241.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  3242. Note:    if a keystroke is available, it is removed from the keyboard buffer
  3243.       before being returned
  3244. SeeAlso: INT 29,INT 2F/AX=1A00h/BX=4156h
  3245. --------E-79---------------------------------
  3246. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  3247. Notes:    this vector is overwritten when GO32 starts but is not restored by
  3248.       early versions of the extender
  3249.     the newest versions of GO32 dynamically allocate the vectors used
  3250.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  3251. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  3252. --------d-79---------------------------------
  3253. INT 79 U - ADP-60 IDE adapter - ???
  3254. SeeAlso: INT 78"ADP-60"
  3255. --------E-79---------------------------------
  3256. INT 79 - DBOS DOS Extender
  3257.     details not available
  3258. Desc:    this interrupt is used by an MS Windows virtual device driver with
  3259.       which the DBOS extender communicates when run inside a Windows
  3260.       Enhanced Mode DOS box
  3261. SeeAlso: INT 78"DBOS"
  3262. --------A-790001-----------------------------
  3263. INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  3264.     AX = 0001h
  3265.     BX = interface level (0001h)
  3266. Return: AX = status (0000h initialization failed, 0001h init successful)
  3267.     BX = digitizer type
  3268.         0000h relative pointing device (mouse, etc.)
  3269.         0001h digitizing tablet
  3270.     CX = digitizer dataflow type
  3271.         0000h continuous
  3272.         0001h pauses between packets
  3273. SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD"
  3274. --------A-790002-----------------------------
  3275. INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE
  3276.     AX = 0002h
  3277. SeeAlso: AX=0001h,AX=0003h
  3278. --------A-790003-----------------------------
  3279. INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  3280.     AX = 0003h
  3281. Return: AX = status
  3282.         0000h nothing
  3283.         0002h tracking point (no button pressed)
  3284.         BX = X coordinate
  3285.         CX = Y coordinate
  3286.         0003h picked point (button 0,A,B,C,D pressed)
  3287.         BX = X coordinate
  3288.         CX = Y coordinate
  3289.         0004h button pick
  3290.         BX = button number
  3291.         0005h button and coordinates
  3292.         BX = button number
  3293.         CX = X coordinate
  3294.         DX = Y coordinate
  3295. SeeAlso: AX=0001h,AX=0002h
  3296. --------N-7A---------------------------------
  3297. INT 7A U - Topware Network Operating System - ???
  3298.     AL = ???
  3299.     ???
  3300. Return: ???
  3301. SeeAlso: INT 21/AX=FF00h"Topware",INT 2F/AX=FF00h
  3302. --------N-7A---------------------------------
  3303. INT 7A - X.PC Packet software interface
  3304.     ES:BX -> parameter block
  3305. SeeAlso: INT 60/AX=01FFh
  3306. --------E-7A---------------------------------
  3307. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  3308. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3309.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3310. Notes:    this vector is overwritten when GO32 starts but is not restored by
  3311.       early versions of the extender
  3312.     the newest versions of GO32 dynamically allocate the vectors used
  3313.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  3314. SeeAlso: INT 0A,INT 79"GO32",INT 7B"GO32"
  3315. --------P-7A---------------------------------
  3316. INT 7A O - PRINDIR - API (moved to INT 7C)
  3317. SeeAlso: INT 7C"PRINDIR"
  3318. --------N-7A---------------------------------
  3319. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  3320. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  3321.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  3322.       entry point even though INT 7A still exists.    For both INT 7A and
  3323.       the FAR entry point, BX contains the function number; IPX is
  3324.       sometimes called internally with BX bit 15 set, which causes the
  3325.       handler to bypass some initial checks and an optional call to the
  3326.       IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  3327.       (see #2204)
  3328. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  3329. --------N-7A----BX0000-----------------------
  3330. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  3331.     BX = 0000h
  3332.     AL = socket longevity
  3333.         00h open until close or terminate
  3334.         FFh open until close
  3335.     DX = socket number (high byte in DL)
  3336.         0000h dynamic allocation
  3337.         else  socket to open (see #3058)
  3338. Return: AL = return code
  3339.         00h success
  3340.         DX = socket number
  3341.         FEh socket table full
  3342.         FFh socket already open
  3343. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  3344.       programs should normally use AL=00h
  3345.     IPX can be configured to support up to 150 open sockets on a
  3346.       workstation, and defaults to 20
  3347.     this function is supported by Advanced NetWare 1.02+
  3348. SeeAlso: INT 7A/BX=0001h,INT 7A/BX=0004h,INT 7A/BX=0023h
  3349.  
  3350. (Table 3058)
  3351. Values for IPX socket number:
  3352.  0451h    File Service (NetWare Core Protocol)
  3353.  0452h    Service Advertising Protocol (see #3066)
  3354.  0453h    Routing Information Packet (see #3069)
  3355.  0455h    NetBIOS Packet
  3356.  0456h    diagnostics
  3357.  0457h    server serial numbers (labeled "Copy Protection" by Lanalyzer)
  3358.  2222h    NetWare Core Protocol
  3359.  4000h-7FFFh used for dynamic allocation
  3360.  4444h    Brightwork Development's SiteLock server
  3361.  5555h    Brightwork Development's SiteLock client (workstation)
  3362.  8000h-FFFFh assigned by Novell
  3363.  869Ch    ID Software's DOOM
  3364. Note:    SiteLock is an application metering product using IPX to communicate
  3365.       between the application and the license server
  3366. --------N-7A----BX0001-----------------------
  3367. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  3368.     BX = 0001h
  3369.     DX = socket number (high byte in DL) (see #3058)
  3370. Notes:    also cancels events set by any Event Control Blocks for the socket
  3371.     the program must close all open sockets before terminating
  3372.     this function is supported by Advanced NetWare 1.02+
  3373. SeeAlso: BX=0000h
  3374. --------N-7A----BX0002-----------------------
  3375. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  3376.     BX = 0002h
  3377.     ES:SI -> target internetwork address (see #3073 at INT 7A/BX=000Bh)
  3378.     ES:DI -> 6-byte buffer for local target
  3379. Return: AL = return code
  3380.         00h success
  3381.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  3382.               packet
  3383.            ES:DI -> local target
  3384.         FAh unsuccessful (no path to destination)
  3385. Notes:    the internetwork address consists of a 4-byte network address followed
  3386.       by a 6-byte node address.  The local target is only a 6-byte node
  3387.       address.  If the target is in the same network, the local target is
  3388.       just the node address of target; otherwise, the local target is the
  3389.       node address of the bridge that leads to the target.
  3390.     this function may be called from inside IPX and AES Event Service
  3391.       Routines, but not from other interrupt handlers
  3392.     this function is supported by Advanced NetWare 1.02+
  3393. SeeAlso: BX=0009h
  3394. --------N-7A----BX0003-----------------------
  3395. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  3396.     BX = 0003h
  3397.     ES:SI -> Event Control Block (see #3059,#3060)
  3398. Notes:    returns immediately; IPX attempts to send the packet in the background
  3399.     this function is supported by Advanced NetWare 1.02+
  3400.     this function is nearly identical to BX=000Fh, except that it always
  3401.       copies the source address into the IPX header assumed to be at the
  3402.       beginning of the first fragment
  3403. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  3404.  
  3405. Format of IPX Event Control Block:
  3406. Offset    Size    Description    (Table 3059)
  3407.  00h    DWORD    Link
  3408.  04h    DWORD    -> Event Service Routine (00000000h if none) (see #3063)
  3409.  08h    BYTE    in use flag (see #3061)
  3410.  09h    BYTE    completion code (see #3062)
  3411.  0Ah    WORD    (big-endian) socket number (see #3058)
  3412.  0Ch  4 BYTEs    IPX workspace
  3413.  10h 12 BYTEs    driver workspace
  3414.  1Ch  6 BYTEs    immediate local node address
  3415.  22h    WORD    fragment count
  3416.  24h    var    fragment descriptors
  3417.         Offset    Size    Description
  3418.          00h    DWORD    -> fragment data
  3419.          04h    WORD    size of fragment in bytes.
  3420. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  3421.       On call, the in use flag is zero if the ECB has been handled,
  3422.       non-zero otherwise. If the flag is zero, the completion code holds
  3423.       the result of the event.
  3424.     the first fragment should start with an IPX header (see #3064)
  3425.     all fragments are concatenated and sent in one piece
  3426.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  3427. SeeAlso: #3060
  3428.  
  3429. Format of AES-ECB:
  3430. Offset    Size    Description    (Table 3060)
  3431.  00h    DWORD    Link
  3432.  04h    DWORD    ESR (Event Service Routine) address (see #3063)
  3433.  08h    BYTE    in use flag (see #3061)
  3434.  09h  5 BYTEs    AES workspace
  3435. SeeAlso: #3059
  3436.  
  3437. (Table 3061)
  3438. Values for ECB in use flag:
  3439.  00h    available
  3440.  E0h    AES temporary
  3441.  F6h    \ special IPX/SPX processing for v3.02+
  3442.  F7h    /
  3443.  F8h    IPX in critical section
  3444.  F9h    SPX listening
  3445.  FAh    processing
  3446.  FBh    holding
  3447.  FCh    AES waiting
  3448.  FDh    AES couting down delay time
  3449.  FEh    awaiting packet reception
  3450.  FFh    sending packet
  3451. SeeAlso: #3059,#3060,#3062
  3452.  
  3453. (Table 3062)
  3454. Values for ECB completion code:
  3455.  00h    success
  3456.  ECh    remote terminated connection without acknowledging packet
  3457.  EDh    abnormal connection termination
  3458.  EEh    invalid connection ID
  3459.  EFh    SPX connection table full
  3460.  F9h    event should not be cancelled
  3461.  FAh    cannot establish connection with specified destination
  3462.  FCh    cancelled
  3463.  FDh    malformed packet
  3464.  FEh    packet undeliverable
  3465.  FFh    physical error
  3466. SeeAlso: #3059,#3061
  3467.  
  3468. (Table 3063)
  3469. Values Event Service Routine is called with:
  3470.     AL = caller's identity (00h = AES, FFh = IPX)
  3471.     ES:SI -> event control block
  3472.     interrupts disabled
  3473. Return: all registers preserved
  3474. SeeAlso: #3059,#3064
  3475.  
  3476. Format of IPX header:
  3477. Offset    Size    Description    (Table 3064)
  3478.  00h    WORD    (big-endian) checksum
  3479.  02h    WORD    (big-endian) length in bytes of total packet
  3480.  04h    BYTE    transport control
  3481.  05h    BYTE    packet type (see #3065)
  3482.  06h 10 BYTEs    destination internetwork address
  3483.  10h    WORD    (big-endian) destination socket
  3484.  12h 10 BYTEs    source internetwork address
  3485.  1Ch    WORD    (big-endian) source socket
  3486. SeeAlso: #3059,#3075
  3487.  
  3488. (Table 3065)
  3489. Values for IPX packet type:
  3490.  00h    unknown packet type
  3491.  01h    routing information packet
  3492.  02h    echo packet
  3493.  03h    error packet
  3494.  04h    packet exchange packet (always use this one)
  3495.  05h    SPX packet (see #3075)
  3496.  11h    NetWare Core Protocol
  3497.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  3498.  15h-1Eh experimental protocols
  3499. Note:    undocumented packet type 14h will cross up to 16 networks deep in
  3500.       all directions; as Aaron Martin of Origin Systems discovered, the
  3501.       first 64 bytes of the IPX data in such packets should be considered
  3502.       reserved, as IPX places the traversed server nodes there.
  3503.  
  3504. Format of Service Advertising Protocol Service Query Packet:
  3505. Offset    Size    Description    (Table 3066)
  3506.  00h 30 BYTEs    IPX header
  3507.  1Eh    WORD    (big-endian) query type
  3508.         0001h general find service
  3509.         0003h find nearest server
  3510.  20h    WORD    (big-endian) server type (see #1224 at INT 21/AH=E3h)
  3511. SeeAlso: #3067
  3512.  
  3513. Format of Service Advertising Protocol Server Identification Packet:
  3514. Offset    Size    Description    (Table 3067)
  3515.  00h 30 BYTEs    IPX header
  3516.  1Eh    WORD    (big-endian) response type
  3517.         0002h general service
  3518.         0004h nearest service
  3519.  20h 64N BYTEs    server entries (1-7) (see #3068)
  3520. SeeAlso: #3066,#3069
  3521.  
  3522. Format of SAP server entry:
  3523. Offset    Size    Description    (Table 3068)
  3524.  00h    WORD    (big-endian) server type (see #1224 at INT 21/AH=E3h)
  3525.  02h 48 BYTEs    ASCIZ server name
  3526.  32h  2 WORDs    (big-endian) network number
  3527.  34h  3 WORDs    (big-endian) node number
  3528.  3Ch    WORD    (big-endian) socket number
  3529.  3Eh    WORD    (big-endian) number of hops between caller and server
  3530.  
  3531. Format of IPX Routing Information packet:
  3532. Offset    Size    Description    (Table 3069)
  3533.  00h 30 BYTEs    IPX header
  3534.  1Eh    WORD    operation (0001h request, 0002h response)
  3535.  20h 8N BYTEs    network entries (1-50) (see #3070)
  3536. SeeAlso: #3067
  3537.  
  3538. Format of RIP network entry:
  3539. Offset    Size    Description    (Table 3070)
  3540.  00h    DWORD    network number (FFFFFFFFh = general request)
  3541.  04h    WORD    (response) number of hops
  3542.  06h    WORD    (response) number of clock ticks to reach destination
  3543. --------N-7A----BX0004-----------------------
  3544. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  3545.     BX = 0004h
  3546.     ES:SI -> Event Control Block (see BX=0003h)
  3547. Return: AL = status
  3548.         00h successful
  3549.         FFh no listening socket for packet
  3550. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  3551.       does not wait for a packet to arrive
  3552. Notes:    the application must open a socket and initialize the ECB's ESR
  3553.       address, socket number, fragment count, and fragment descriptor
  3554.       fields before invoking this function
  3555.     there is no limit on the number of ECBs which may simultaneously be
  3556.       listening on a socket
  3557.     this function is supported by Advanced NetWare 1.02+
  3558. SeeAlso: BX=0000h,BX=0003h
  3559. --------N-7A----BX0005-----------------------
  3560. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  3561.     BX = 0005h
  3562.     AX = delay time in clock ticks
  3563.     ES:SI -> Event Control Block (see BX=0003h)
  3564. Note:    this function is supported by Advanced NetWare 1.02+
  3565. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  3566. --------N-7A----BX0006-----------------------
  3567. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  3568.     BX = 0006h
  3569.     ES:SI -> Event Control Block (see BX=0003h)
  3570. Return: AL = return code (see #3071)
  3571. Notes:    cannot cancel packets which the node's driver has already sent
  3572.     this function is supported by Advanced NetWare 1.02+
  3573. SeeAlso: BX=0005h
  3574.  
  3575. (Table 3071)
  3576. Values for IPX return code:
  3577.  00h    success
  3578.  F9h    event in use
  3579.  FCh    event cancelled
  3580.  FFh    unsuccessful, event not in use, or unrecognized ECB flag
  3581. --------N-7A----BX0007-----------------------
  3582. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  3583.     BX = 0007h
  3584.     AX = delay time
  3585.     ES:SI -> Event Control Block (see BX=0003h)
  3586. Note:    this function is supported by Advanced NetWare 1.02+
  3587. SeeAlso: BX=0006h
  3588. --------N-7A----BX0008-----------------------
  3589. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  3590.     BX = 0008h
  3591. Return: AX = interval marker in clock ticks (big-endian???)
  3592. Notes:    may be used to measure the time elapsed between two events, up to one
  3593.       hour
  3594.     this function is supported by Advanced NetWare 1.02+
  3595. SeeAlso: BX=0005h
  3596. --------N-7A----BX0009-----------------------
  3597. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  3598.     BX = 0009h
  3599.     ES:SI -> buffer for own internetwork address (see #3072)
  3600. Return: ES:SI buffer filled
  3601.     SI destroyed
  3602. Note:    this function is supported by Advanced NetWare 1.02+
  3603. SeeAlso: BX=0002h,BX=000Bh
  3604.  
  3605. Format of IPX internetwork address:
  3606. Offset    Size    Description    (Table 3072)
  3607.  00h  4 BYTEs    (big-endian) network number
  3608.  04h  6 BYTEs    (big-endian) node number within network
  3609. --------N-7A----BX000A-----------------------
  3610. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  3611.     BX = 000Ah
  3612. Desc:    this call indicates that the application is idle and permits the IPX
  3613.       driver to do some work
  3614. Note:    this function is supported by Advanced NetWare 1.02+
  3615. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  3616. --------N-7A----BX000B-----------------------
  3617. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  3618.     BX = 000Bh
  3619.     ES:SI -> internetwork address (see #3073)
  3620. Return: nothing
  3621. Notes:    this function permits the network software on the remote machine to
  3622.       remove any virtual connection with the calling machine
  3623.     only use in point-to-point networks
  3624.     should never be called from within an Event Service Routine
  3625.     this function is supported by Advanced NetWare 1.02+
  3626. SeeAlso: BX=0002h,BX=0009h
  3627.  
  3628. Format of IPX internetwork address:
  3629. Offset    Size    Description    (Table 3073)
  3630.  00h  4 BYTEs    (big-endian) destination network
  3631.  04h  6 BYTEs    (big-endian) destination node
  3632.  0Ah  2 BYTEs    (big-endian) destination socket
  3633. --------N-7A----BX000C-----------------------
  3634. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  3635.     BX = 000Ch
  3636.     CX:DX = global network address (see INT 7A/BX=0002h)
  3637.     ES:DI -> "OSINCRITICALSECTION" flag
  3638.     DS:SI -> current mode for socket
  3639. Note:    the address cannot be changed once it has been initialized
  3640. SeeAlso: INT 7A/BX=0024h
  3641. --------N-7A----BX000D-----------------------
  3642. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  3643.     BX = 000Dh
  3644. Return: AX = maximum packet size
  3645.     CX = retry count
  3646. SeeAlso: BX=001Ah
  3647. --------N-7A----BX000E-----------------------
  3648. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  3649.     BX = 000Eh
  3650. Return: nothing
  3651. Notes:    this function terminates all sockets opened with the current mode; this
  3652.       may be intended for future enhancements as the socket mode never
  3653.       changes in v2.15
  3654.     called by the NetWare shell if a program terminates
  3655. --------N-7A----BX000F-----------------------
  3656. INT 7A - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  3657.     BX = 000Fh
  3658.     ES:SI -> Event Control Block (see BX=0003h)
  3659. Note:    nearly identical to function 0003h, but does not copy address into
  3660.       the first fragment, and bypasses normal error checking
  3661. SeeAlso: BX=0003h
  3662. --------N-7A----BX0010-----------------------
  3663. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  3664.     BX = 0010h
  3665.     AL = 00h
  3666. Return: AL = status
  3667.         00h if SPX not installed
  3668.         F0h if IPX not installed
  3669.         FFh if SPX loaded
  3670.         BH = SPX major version
  3671.         BL = SPX minor version
  3672.         CX = maximum SPX connections
  3673.         DX = SPX connections available
  3674. Notes:    this function is supported by Advanced NetWare 2.1+
  3675.     this interrupt is used for IPX/SPX access in NetWare versions through
  3676.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  3677.       entry point even though INT 7A still exists.    For both INT 7A and
  3678.       the FAR entry point, BX contains the function number
  3679.     IPX is sometimes called internally with BX bit 15 set, which causes the
  3680.       entry point handler to bypass some checks and an optional call to
  3681.       the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  3682.       (see #2204)
  3683. SeeAlso: BX=0015h
  3684. --------N-7A----BX0011-----------------------
  3685. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  3686.     BX = 0011h
  3687.     AL = retry count
  3688.     AH = watchdog flag
  3689.     ES:SI -> Event Control Block (see #3059 at BX=0003h)
  3690. Return: AL = status (00h,EFh,FDh,FFh) (see #3074)
  3691.     DX = assigned connection ID number
  3692. Desc:    attempt to establish a connection with a listening socket
  3693. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  3694.       that NetWare can perform its internal packet exchanges
  3695.     the first fragment should start with a SPX header (see #3075).    Fill
  3696.       in all destination addresses.
  3697.     this function is supported by Advanced NetWare 2.1+
  3698. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  3699.  
  3700. (Table 3074)
  3701. Values for SPX function status:
  3702.  00h    attempting to contact destination socket
  3703.  EEh    no such connection
  3704.  EFh    local connection table full
  3705.  FDh    buffer size not 42 or fragment count not 1
  3706.  FFh    sending socket not open
  3707.  
  3708. Format of SPX header:
  3709. Offset    Size    Description    (Table 3075)
  3710.  00h    WORD    (big-endian) checksum
  3711.  02h    WORD    (big-endian) length in bytes of total packet
  3712.  04h    BYTE    transport control
  3713.  05h    BYTE    packet type (see #3065 at INT 7A/BX=0003h)
  3714.  06h 10 BYTEs    destination internet address
  3715.  10h    WORD    (big-endian) destination socket
  3716.  12h 10 BYTEs    source internet address
  3717.  1Ch    WORD    (big-endian) source socket
  3718.  1Eh    BYTE    connection control (see #3076)
  3719.  1Fh    BYTE    datastream type
  3720.         FEh terminate connection request packet
  3721.         FFh terminate connection acknowledgement packet
  3722.         other user-defined, ignored by SPX
  3723.  20h    WORD    (big-endian) source connection ID
  3724.  22h    WORD    (big-endian) destination connection ID
  3725.  24h    WORD    (big-endian) sequence number
  3726.  26h    WORD    (big-endian) acknowledge number
  3727.  28h    WORD    (big-endian) allocation number
  3728. SeeAlso: #3064
  3729.  
  3730. Bitfields for SPX connection control:
  3731. Bit(s)    Description    (Table 3076)
  3732.  3-0    unused???
  3733.  4    end of message
  3734.  5    reserved
  3735.  6    acknowledgement required
  3736.  7    system packet
  3737. --------N-7A----BX0012-----------------------
  3738. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  3739.     BX = 0012h
  3740.     AH = watchdog flag (00h disabled, 01h enabled)
  3741.     AL = retry count (00h = default)
  3742.     ES:SI -> Event Control Block (see #3059 at BX=0003h)
  3743. Return: nothing
  3744. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  3745.       that NetWare can perform its internal packet exchanges
  3746.     this function is supported by Advanced NetWare 2.1+
  3747. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  3748. --------N-7A----BX0013-----------------------
  3749. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  3750.     BX = 0013h
  3751.     DX = connection ID to terminate
  3752.     ES:SI -> Event Control Block (see #3059 at BX=0003h)
  3753. Note:    this function is supported by Advanced NetWare 2.1+
  3754. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  3755. --------N-7A----BX0014-----------------------
  3756. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  3757.     BX = 0014h
  3758.     DX = connection ID to terminate
  3759. Return: nothing
  3760. Notes:    this function is supported by Advanced NetWare 2.1+
  3761.     this function does not tell the other side that the connection has been
  3762.       terminated
  3763.     also aborts any outstanding Establish Connection, Terminate Connection,
  3764.       and Send Sequenced Packet commands
  3765. SeeAlso: BX=0011h,BX=0013h
  3766. --------N-7A----BX0015-----------------------
  3767. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  3768.     BX = 0015h
  3769.     DX = connection ID
  3770.     ES:SI -> status buffer (see #3077)
  3771. Return: AL = return code (00h,EEh) (see also #3074)
  3772.         00h connection still valid
  3773.         ES:SI -> status buffer filled
  3774. Note:    this function is supported by Advanced NetWare 2.1+
  3775. SeeAlso: BX=0010h,BX=0011h
  3776.  
  3777. Format of SPX status buffer:
  3778. Offset    Size    Description    (Table 3077)
  3779.  00h    BYTE    connection state
  3780.         01h waiting to establish connection
  3781.         02h starting (attempting to create connection)
  3782.         03h connection established
  3783.         04h terminating
  3784.  01h    BYTE    watchdog flag
  3785.         bit 0: used internally by SPX
  3786.         bit 1: SPX watchdog is monitoring connection
  3787.         bits 2-7 used internally by SPX
  3788.  02h    WORD    (big-endian) source connection ID
  3789.  04h    WORD    (big-endian) destination connection ID
  3790.  06h    WORD    (big-endian) sequence number of next packet sent
  3791.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  3792.           next received packet
  3793.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  3794.           without ACK from local SPX
  3795.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  3796.           remote SPX expects to receive
  3797.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  3798.           local SPX may send
  3799.  10h    WORD    (big-endian) connection socket
  3800.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  3801.  18h 10 BYTEs    destination internetwork address (see #3073 at INT 7A/BX=000Bh)
  3802.  22h    WORD    (big-endian) retransmit count
  3803.  24h    WORD    (big-endian) estimated roundtrip delay
  3804.  26h    WORD    (big-endian) retransmitted packets
  3805.  28h    WORD    (big-endian) suppressed packets
  3806.  2Ah 12 BYTEs    ??? (v2.15)
  3807. --------N-7A----BX0016-----------------------
  3808. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  3809.     BX = 0016h
  3810.     DX = connection ID
  3811.     ES:SI -> Event Control Block (see BX=0003h)
  3812. Notes:    this function is supported by Advanced NetWare 2.1+
  3813.     CX may need to be 0001h ???
  3814. SeeAlso: BX=0011h,BX=0017h
  3815. --------N-7A----BX0017-----------------------
  3816. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  3817.     BX = 0017h
  3818.     DX = connection ID (unused in v2.15)
  3819.     ES:SI -> Event Control Block (see BX=0003h)
  3820. Notes:    this function is supported by Advanced NetWare 2.1+
  3821.     CX may need to be 0001h ???
  3822. SeeAlso: BX=0011h,BX=0016h
  3823. --------N-7A----BX0018-----------------------
  3824. INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  3825.     BX = 0018h
  3826.     ES:SI -> diagnostic element (see #3078) to be added to Diagnostic Queue
  3827. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3828.       supports it on workstations
  3829. SeeAlso: BX=0019h
  3830.  
  3831. Format of IPX diagnostic element:
  3832. Offset    Size    Description    (Table 3078)
  3833.  00h    DWORD    pointer to next diagnostic element
  3834.  04h    DWORD    pointer to function for ???
  3835.  08h    DWORD    pointer to function for ???
  3836. --------N-7A----BX0019-----------------------
  3837. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  3838.     BX = 0019h
  3839.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  3840. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3841.       supports it on workstations
  3842. SeeAlso: BX=0018h
  3843. --------N-7A----BX001A-----------------------
  3844. INT 7A - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT
  3845.     BX = 001Ah
  3846. Return: AX = maximum packet size with preamble (at least 576 bytes)
  3847.     CX = IPX retry count
  3848.     DS,FLAGS preserved
  3849. Note:    this function is has existed since November 1989; it is documented in
  3850.       Novell document FYI.A.3709, 03May91
  3851. SeeAlso: BX=000Dh
  3852. --------N-7A----BX001B-----------------------
  3853. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  3854.     BX = 001Bh
  3855.     ???
  3856. Return: ???
  3857. Notes:    this function is supported on file servers only under v2.15; v3.02 also
  3858.       supports it on workstations
  3859.     used by NetWare Access Server, which may call INT 15/AX=1117h with
  3860.       BX=0000h in some cases (it uses a modified DESQview)
  3861. --------N-7A----BX001C-----------------------
  3862. INT 7A U - Novell NetWare - NetWare Access Server - GET ???
  3863.     BX = 001Ch
  3864. Return: AX = length of ???
  3865.     ES:BX -> ???
  3866. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  3867. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Dh,INT 7A/BX=001Eh
  3868. --------N-7A----BX001D-----------------------
  3869. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB AND SOCKET
  3870.     BX = 001Dh
  3871. Return: DX = socket number chosen by IPX
  3872.     ES:SI -> ECB in IPX's code segment (will be listening)
  3873.     BX corrupted
  3874. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  3875. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Eh
  3876. --------N-7A----BX001E-----------------------
  3877. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB
  3878.     BX = 001Eh
  3879. Return: ES:SI -> ECB
  3880.     BX corrupted
  3881. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  3882. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Dh
  3883. --------N-7A----BX001F-----------------------
  3884. INT 7A - Novell NetWare - IPXODI v2.12+ - GET IPX FLAGS
  3885.     BX = 001Fh
  3886.     DX = 0000h
  3887. Return: AX = ???
  3888.     BX:CX -> ??? entry point (see #3079)
  3889.     DX = feature flags
  3890.         bit 0: IPXODI rather than dedicated IPX
  3891.         bit 1: checksumming functions 0020h-0022h supported
  3892.     ES:SI -> array of words containing used socket number (undocumented);
  3893.         0000h ends array
  3894.     all other registers except DS and FLAGS may be destroyed
  3895. Note:    IPXODI v2.12 is distributed as part of the Personal NetWare system
  3896.       bundled with Novell DOS 7
  3897. SeeAlso: BX=0020h,INT 2F/AX=7A2Fh
  3898.  
  3899. (Table 3079)
  3900. Call IPXODI entry point with:
  3901.     ES:SI -> ECB??? (offset 24h is far pointer to ??? data)
  3902. --------N-7A----BX0020-----------------------
  3903. INT 7A - Novell NetWare - IPXODI v2.12+ - SEND WITH CHECKSUM
  3904.     BX = 0020h
  3905.     ES:SI -> ECB (see #3059 at INT 7A/BX=0003h)
  3906. Return: DS,FLAGS preserved
  3907.     BX,BP corrupted (documented as potentially destroying all other regs)
  3908. Desc:    generate a checksum for the packet data and store it in the IPX
  3909.       checksum field before transmitting the packet
  3910. SeeAlso: BX=001Fh,BX=0021h,BX=0022h,INT 2F/AX=7A2Fh
  3911. --------N-7A----BX0021-----------------------
  3912. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX GENERATE CHECKSUM
  3913.     BX = 0021h
  3914.     ES:SI -> ECB data (see #3059 at INT 7A/BX=0003h)
  3915. Return: ES,DS,SI preserved
  3916.     BX,BP corrupted, all other registers potentially destroyed
  3917. Notes:    the checksum and TransportControl fields of the IPX packet are updated
  3918.     this function enables interrupts and is fully reentrant
  3919. SeeAlso: BX=001Fh,BX=0020h,BX=0022h,INT 2F/AX=7A2Fh
  3920. --------N-7A----BX0022-----------------------
  3921. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX VERIFY CHECKSUM
  3922.     BX = 0022h
  3923.     ES:SI -> ECB data (see #3059 at INT 7A/BX=0003h)
  3924. Return: AX = status (0000h checksum matches)
  3925.     DS,ES,SI preserved
  3926.     BX,BP corrupted, all other registers potentially destroyed
  3927. Note:    this function enables interrupts and is fully reentrant
  3928. SeeAlso: BX=001Fh,BX=0020h,BX=0021h,INT 2F/AX=7A2Fh
  3929. --------N-7A----BX0023-----------------------
  3930. INT 7A - Novell NetWare - IPXODI v2.12+ - OPEN LOOK-AHEAD SOCKET
  3931.     BX = 0023h
  3932.     DX = socket number (0000h for dynamic allocation)
  3933.     ES:SI -> Look Ahead handler (see #3080)
  3934.     BP = desired lookahead size (0000h-0080h)
  3935. Return: AL = status
  3936.         00h successful
  3937.         DX = assigned socket number (big-endian)
  3938.         FEh maximum number of sockets already open
  3939.         FFh specific socket already opened by another application
  3940.     DS,FLAGS preserved
  3941.     all other registers may be destroyed
  3942. Notes:    the socket will always be long-lived, and must thus be explicitly
  3943.       closed with INT 7A/BX=0001h before the Look Ahead handler code is
  3944.       removed from memory (i.e. the program terminates)
  3945.     this function is only supported if INT 2F/AX=7A00h returns ES:BX
  3946.       pointing at an IPX version greater than 3.30
  3947.     the desired lookahead size is the smallest-size packet (including IPX
  3948.       header) that should be passed to the lookahead handler when it
  3949.       arrives
  3950. SeeAlso: INT 7A/BX=0000h,INT 7A/BX=0001h
  3951.  
  3952. (Table 3080)
  3953. Call IPX Look-Ahead handler with:
  3954.     AX = packet's destination socket
  3955.     DS:SI -> look-ahead structure (see #2280 at INT 2F/AX=C000h"LSL")
  3956.     DF clear
  3957.     interrupt disabled (must remain disabled)
  3958. Return: AX = packet use
  3959.         0000h application want packet
  3960.         ES:SI -> ODI ECB (see #2281 at INT 2F/AX=C000h"LSL")
  3961.         8001h application does not want packet
  3962.     ZF set if AX=0000h
  3963.     DS,DI,BP,SS,SP preserved
  3964.     interrupts disabled
  3965. --------N-7A----BX0024-----------------------
  3966. INT 7A U - Novell NetWare - IPXODI v2.20+ - SET INTERNETWORK ADDRESS
  3967.     BX = 0024h
  3968.     ES:SI -> buffer containing internetwork address (see #3073)
  3969. Return: BX,CX,SI,DI,ES destroyed
  3970. Note:    this function differs from INT 7A/BX=000Ch in that it unconditionally
  3971.       sets the address
  3972. SeeAlso: INT 7A/BX=000Ch
  3973. --------A-7A0001-----------------------------
  3974. INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1)
  3975.     AX = 0001h
  3976.     BX = configuration
  3977.     CX = interface level (0001h)
  3978. Return: AX = status
  3979.         0000h initialization failed
  3980.         0001h pre-v4.0 driver initialized successfully
  3981.         0003h post-v3.1 driver initialized successfully (driver truncates
  3982.           excessivly long packets)
  3983.     BX = width of graphics area in pixels, or 0000h if using packet
  3984.           communication
  3985.     DX:CX -> packet-mode entry point (see #3081)
  3986. SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD"
  3987. SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade"
  3988.  
  3989. (Table 3081)
  3990. Call packet-mode entry point with:
  3991. STACK:    DWORD    pointer to request packet (see #3082)
  3992.     WORD    length of packet
  3993.  
  3994. Format of request packet:
  3995. Offset    Size    Description    (Table 3082)
  3996.  00h    WORD    function number (00h-45h for Compaq VGADI41.EXE)
  3997. --------A-7A0200BX0000-----------------------
  3998. INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP)
  3999.     AX = 0200h
  4000.     BX = 0000h
  4001.     CX = interface level (0001h)
  4002. Return: BX = 0000h (driver uses packet communication)
  4003.     DX:CX -> packet-mode entry point (see #3081)
  4004. SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD"
  4005. --------I-7A04-------------------------------
  4006. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  4007.     AH = 04h
  4008.     ???
  4009. Return: ???
  4010. SeeAlso: AH=06h
  4011. --------I-7A06-------------------------------
  4012. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  4013.     AH = 06h
  4014.     ???
  4015. Return: ???
  4016. SeeAlso: AH=04h
  4017. ----------7A07D0-----------------------------
  4018. INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  4019.     AX = 07D0h
  4020. Return: AX = ??? (0003h)
  4021.     BX = 0000h
  4022.     DX:CX -> ADI entry point (see AX=0001h)
  4023. SeeAlso: AX=0001h
  4024. --------I-7A09--BX8020-----------------------
  4025. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  4026.     AH = 09h
  4027.     BX = 8020h (synchronous request)
  4028.     CX = 0000h
  4029.     DX = ID of session manager (SESSMGR)
  4030.     AL = service (see #3083)
  4031.     ES:DI -> control block
  4032. Return: ???
  4033.  
  4034. (Table 3083)
  4035. Values for service:
  4036.  01h    get session ID
  4037.  02h    get session info
  4038.  04h    dettach from session
  4039.  05h    attach to session
  4040.  06h    get list of windows available
  4041.  07h    get environment of window
  4042.  08h    get 'PIF' (program information file) info
  4043.  0Ah    get base window ID
  4044.  0Bh    get cursor info
  4045. --------I-7A09--BX8020-----------------------
  4046. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  4047.     AH = 09h
  4048.     BX = 8020h (synchronous request)
  4049.     CX = 0000h
  4050.     DX = ID of keyboard manager
  4051.     AL = service number (see #3084)
  4052.     ES:DI -> control block
  4053. Return: ???
  4054.  
  4055. (Table 3084)
  4056. Values for 3270 Workstation Program keyboard service:
  4057.  01h    connect to keyboard
  4058.  02h    disconnect from keyboard
  4059.  03h    read from keyboard
  4060.  04h    send keystroke to session
  4061.  05h    disable input
  4062.  06h    enable input
  4063.  07h    update status code
  4064. --------I-7A09--BX8020-----------------------
  4065. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  4066.     AH = 09h
  4067.     BX = 8020h (synchronous request)
  4068.     CX = 00FFh
  4069.     DX = ID of window service controller (WSCTRL)
  4070.     AL = service number (see #3085)
  4071.     ES:DI -> control block
  4072. Return: ???
  4073.  
  4074. (Table 3085)
  4075. Values for 3270 Workstation Program window service:
  4076.  01h    connect to WS control
  4077.  02h    disconnect from WS control
  4078.  03h    add a window
  4079.  04h    change window's position on screen
  4080.  05h    change window's size
  4081.  06h    change window's color
  4082.  07h    change window's position in the presentation space
  4083.  08h    hide/unhide toggle
  4084.  09h    enlarge/reduce toggle
  4085.  0Ah    change screen background color
  4086.  0Bh    get window's position on screen
  4087.  0Ch    get window's size
  4088.  0Dh    get window's color
  4089.  0Eh    get window's position in the presentation space
  4090.  0Fh    determine whether hidden
  4091.  10h    determine whether enlarged
  4092.  11h    get background color
  4093.  12h    get window names
  4094.  13h    delete all windows from profile
  4095.  14h    pick active window
  4096.  15h    redraw screen
  4097.  16h    redraw window
  4098.  17h    delete a window from profile
  4099.  18h    get active window
  4100.  19h    get active screen
  4101.  1Ah    get window data
  4102.  1Bh    change window data
  4103.  1Ch    select active screen
  4104. --------I-7A09--BX8020-----------------------
  4105. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  4106.     AH = 09h
  4107.     BX = 8020h
  4108.     CX = 00FFh
  4109.     DX = ID of PCPSM
  4110.     AL = service
  4111.         01h define presentation space
  4112.         02h delete presentation space
  4113.         03h display presentation space
  4114.         04h position cursor in presentation space
  4115.         05h change default presentation space
  4116.     ES:DI -> control block
  4117. Return: ???
  4118. --------I-7A09--BX8020-----------------------
  4119. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  4120.     AH = 09h
  4121.     BX = 8020h
  4122.     CX = 00FFh
  4123.     DX = ID of 3270EML
  4124.     AL = service
  4125.         01h connect
  4126.         02h disconnect
  4127.     ES:DI -> control block
  4128. Return: ???
  4129. --------I-7A09--BX8020-----------------------
  4130. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  4131.     AH = 09h
  4132.     BX = 8020h
  4133.     CX = 00FFh
  4134.     DX = ID of OIAM
  4135.     AL = service
  4136.         01h read Operator Information Area
  4137.         02h read OIA subset
  4138.     ES:DI -> control block
  4139. Return: ???
  4140. Note: the OIA is the 25th line on the Host session
  4141. --------I-7A09--BX8020-----------------------
  4142. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  4143.     AH = 09h
  4144.     BX = 8020h
  4145.     CX = 00FFh
  4146.     DX = ID of XLATE
  4147.     AL = service
  4148.         01h translate from host characters to ASCII and vice versa
  4149.         (determined by control block byte 11)
  4150.     ES:DI -> control block
  4151. Return: ???
  4152. --------I-7A09--BX8020-----------------------
  4153. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  4154.     AH = 09h
  4155.     BX = 8020h
  4156.     CX = 00FFh
  4157.     DX = ID of copy service
  4158.     AL = service
  4159.         01h copy string from one presentation space to another
  4160.         02h copy block from one presentation space to another
  4161.         03h connect to PC session for copy
  4162.         04h disconnect PC session from copy
  4163.     ES:DI -> control block
  4164. Return: ???
  4165. --------I-7A09--BX8020-----------------------
  4166. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  4167.     AH = 09h
  4168.     BX = 8020h
  4169.     CX = 00FFh
  4170.     ES:DI -> control block
  4171.     DX = ID of INDJQRY
  4172.         get environment size
  4173.        = ID of INDJASY
  4174.         request DOS functions from workstation
  4175.        = ID of MEMORY
  4176.         AL = function
  4177.             01h allocate memory
  4178.             02h deallocate memory
  4179.             03h modify allocated size
  4180. Return: ???
  4181. --------I-7A09-------------------------------
  4182. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  4183.     AH = 09h
  4184.     BX = request type (4000h async, 8028h synchronous)
  4185.     CX = 0000h
  4186.     DX = ID of MFIC
  4187.     AL = service (see #3086)
  4188.     ES:DI -> control block
  4189.  
  4190. (Table 3086)
  4191. Values for 3270 Workstation Program host service:
  4192.  01h    connect to host
  4193.  02h    disconnect from host
  4194.  03h    read DFT structured data from host
  4195.  04h    write DFT structured data to host
  4196.  05h    create a host buffer
  4197. --------I-7A13-------------------------------
  4198. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  4199.     AH = 13h
  4200.     ???
  4201. Return: ???
  4202. ----------7A7A-------------------------------
  4203. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  4204.     AH = 7Ah
  4205.     ???
  4206. Return: AX = status
  4207.         0000h success
  4208.         000Eh undefined function code
  4209. Range:    unknown, selected by device driver commandline arguments
  4210. --------I-7A81-------------------------------
  4211. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  4212.     AH = 81h
  4213.     ES:DI -> 8-char blank-padded gate name (see #3087)
  4214. Return: DX = gate ID
  4215.  
  4216. (Table 3087)
  4217. Values for 3270 Workstation Program gate name:
  4218.  "SESSMGR "
  4219.  "KEYBOARD"
  4220.  "WSCTRL  "
  4221.  "MFIC      "
  4222.  "PCPSM      "
  4223.  "3270EML "
  4224.  "COPY      "
  4225.  "XLATE      "
  4226.  "OIAM      "
  4227.  "MEMORY  "
  4228.  "INDJQRY "
  4229.  "INDJASY "
  4230. --------I-7A83-------------------------------
  4231. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  4232.     AH = 83h
  4233.     ???
  4234. Return: ???
  4235. --------I-7AFDCB-----------------------------
  4236. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  4237.     AX = FDCBh
  4238. Return: DX:AX -> PCS/3270 signature block if loaded (see #3088)
  4239.  
  4240. Format of Personal Communications/3270 signature block:
  4241. Offset    Size    Description    (Table 3088)
  4242.  04h    WORD    PCS/3270 signature (5741h)
  4243.  06h    WORD    version (0501h = PCS/3270 v1.0)
  4244. --------I-7AFE01-----------------------------
  4245. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  4246.     AX = FE01h
  4247.     ???
  4248. Return: ???
  4249. SeeAlso: AX=FE02h
  4250. --------I-7AFE02-----------------------------
  4251. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  4252.     AX = FE02h
  4253.     ???
  4254. Return: ???
  4255. SeeAlso: AX=FE01h
  4256. --------I-7AFF01-----------------------------
  4257. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  4258.     AX = FF01h
  4259.     ES:DI -> API function handler routine
  4260. Return: CX = 1200h
  4261. SeeAlso: AX=FF02h,AX=FF03h
  4262. --------I-7AFF02-----------------------------
  4263. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  4264.     AX = FF02h
  4265. Return: CX = 1200h
  4266. SeeAlso: AX=FF01h
  4267. --------I-7AFF03-----------------------------
  4268. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  4269.     AX = FF03h
  4270.     ES:DI -> send/receive function handler routine
  4271. Return: CX = 1200h
  4272. SeeAlso: AX=FF01h
  4273. --------I-7AFF04-----------------------------
  4274. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  4275.     AX = FF04h
  4276.     ES:DI -> ???
  4277. Return: CX = 1200h
  4278. --------f-7B---------------------------------
  4279. INT 7B - Btrieve API (single user)
  4280.     DS:DX -> 38-byte parameter record (see #3089)
  4281. Return: return code field set
  4282. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  4283.       check
  4284. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  4285.  
  4286. Format of Btrieve parameter record:
  4287. Offset    Size    Description    (Table 3089)
  4288.  00h    DWORD    pointer to data buffer
  4289.  04h    WORD    data buffer length
  4290.  06h    DWORD    pointer to 90-byte record containing positioning info
  4291.         (should be same for all calls for same file)
  4292.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  4293.         (should be same for all calls for same file)
  4294.  0Eh    WORD    function code (see #3090)
  4295.  10h    DWORD    pointer to file name/key buffer
  4296.  14h    BYTE    key length
  4297.  15h    BYTE    key number
  4298.  16h    DWORD    pointer to status code (see #3091)
  4299.  1Ah    WORD    interface code (version specific)
  4300.         6176h version 5.10
  4301.  
  4302. (Table 3090)
  4303. Values for function code:
  4304.  00h    open
  4305.  01h    close
  4306.  02h    insert
  4307.  03h    update
  4308.  04h    delete
  4309.  05h    get_equal
  4310.  06h    get_next
  4311.  07h    get_prev
  4312.  08h    get_greater
  4313.  09h    get_gr_eql
  4314.  0Ah    get_less
  4315.  0Bh    get_less_eq
  4316.  0Ch    get_first
  4317.  0Dh    get_last
  4318.  0Eh    create
  4319.  0Fh    stat
  4320.  10h    extend
  4321.  11h    set_dir: set directory information
  4322.  12h    get_dir: get directory information
  4323.  13h    begin_trans
  4324.  14h    end_trans
  4325.  15h    abort_trans
  4326.  16h    get_pos: get record position number
  4327.  17h    get_direct: get data by sending record position
  4328.  18h    step_next
  4329.  19h    stop
  4330.  1Ah    version
  4331.  1Bh    unlock
  4332.  1Ch    reset
  4333.  1Dh    set owner
  4334.  1Eh    clear owner
  4335.  1Fh    create supplemental index
  4336.  20h    drop supplemental index
  4337.  21h    step first
  4338.  22h    step last
  4339.  23h    step previous
  4340.  24h    get next extended: get multiple records using a filter
  4341.  25h    get previous extended: get multiple records using a filter
  4342.  26h    step next extended: get multiple records using a filter
  4343.  27h    step previous extended: get multiple records using a filter
  4344.  28h    insert extended: insert one or more records
  4345.  31h    ???
  4346. Notes:    add 50 (32h) to any "get" operation to just return the key data
  4347.     add 100 (64h) for a single-record wait lock (automatically released
  4348.       on next get)
  4349.     add 200 (C8h) for a single-record nowait lock (nowait lock returns
  4350.       error 54h or 55h if record already locked)
  4351.     add 300 (12Ch) for a multiple-record wait lock (not released until
  4352.       unlock called)
  4353.     add 400 (190h) for a multiple-record nowait lock (nowait lock returns
  4354.       error 54h or 55h if record already locked)
  4355.  
  4356. (Table 3091)
  4357. Values for Btrieve status code:
  4358.  00h    successful
  4359.  01h    invalid operation
  4360.  02h    I/O error
  4361.  03h    file not open
  4362.  04h    key value not found
  4363.  05h    duplicate key value
  4364.  06h    invalid key number
  4365.  07h    different key number
  4366.  08h    invalid positioning
  4367.  09h    end of file
  4368.  0Ah    modifiable key value error
  4369.  0Bh    invalid file name
  4370.  0Ch    file not found
  4371.  0Dh    extended file error
  4372.  0Eh    pre-image open error
  4373.  0Fh    pre-image I/O error
  4374.  10h    expansion error
  4375.  11h    close error
  4376.  12h    disk full
  4377.  13h    unrecoverable error
  4378.  14h    record manager inactive
  4379.  15h    key buffer too short
  4380.  16h    data buffer length overrun
  4381.  17h    position block length
  4382.  18h    page size error
  4383.  19h    create I/O error
  4384.  1Ah    number of keys
  4385.  1Bh    invalid key position
  4386.  1Ch    invalid record length
  4387.  1Dh    invalid key length
  4388.  1Eh    not a Btrieve file
  4389.  1Fh    file already extended
  4390.  20h    extended I/O error
  4391.  22h    invalid extension name
  4392.  23h    directory error
  4393.  24h    transaction error
  4394.  25h    transaction is active
  4395.  26h    transaction control file I/O error
  4396.  27h    end/abort transaction error
  4397.  28h    transaction max files
  4398.  29h    operation not allowed
  4399.  2Ah    incomplete accelerated access
  4400.  2Bh    invalid record address
  4401.  2Ch    null key path
  4402.  2Dh    inconsistent key flags
  4403.  2Eh    access to file denied
  4404.  2Fh    maximum open files
  4405.  30h    invalid alternate sequence definition
  4406.  31h    key type error
  4407.  32h    owner already set
  4408.  33h    invalid owner
  4409.  34h    error writing cache
  4410.  35h    invalid interface
  4411.  36h    variable page error
  4412.  37h    autoincrement error
  4413.  38h    incomplete index
  4414.  39h    expanded memory error
  4415.  3Ah    compression buffer too short
  4416.  3Bh    file already exists
  4417.  3Ch    reject count reached
  4418.  3Dh    work space too small
  4419.  3Eh    incorrect descriptor
  4420.  3Fh    invalid extended insert
  4421.  40h    filter limit reached
  4422.  41h    incorrect field offset
  4423.  4Ah    automatic transaction abort
  4424.  4Dh    Btrieve engine busy or resource locked by another user
  4425.  4Eh    deadlock detected
  4426.  50h    conflict
  4427.  51h    lock error
  4428.  52h    lost position
  4429.  53h    read outside transaction
  4430.  54h    record in use
  4431.  55h    file in use
  4432.  56h    file table full
  4433.  57h    handle table full
  4434.  58h    incompatible open mode
  4435.  5Ah    redirected device table full
  4436.  5Bh    server error
  4437.  5Ch    transaction table full
  4438.  5Dh    incompatible lock type
  4439.  5Eh    permission error
  4440.  5Fh    session no longer valid
  4441.  60h    communications environment error
  4442.  61h    data message too small
  4443.  62h    internal transaction error
  4444. --------I-7B---------------------------------
  4445. INT 7B - Eicon Access API (3270/5250 gateways)
  4446. SeeAlso: INT 5C"NetBIOS"
  4447. --------E-7B---------------------------------
  4448. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  4449. Notes:    this vector is overwritten when GO32 starts but is not restored by
  4450.       early versions of the extender
  4451.     the newest versions of GO32 dynamically allocate the vectors used
  4452.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  4453. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  4454. --------A-7B---------------------------------
  4455. INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA
  4456.     AX = data length (0000h-7FFFh)
  4457.     CX:BX -> data to be plotted
  4458.     DX = vertical position of line on page
  4459. Return: nothing
  4460. Notes:    This interrupt is called by AutoCAD to perform its output
  4461.     A data length of 0000h indicates that a blank line is to be output
  4462. SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD"
  4463. --------e-7B---------------------------------
  4464. INT 7B U - MCI Express v2.11+ - DRIVER.EXE - ???
  4465. Program: MCI Express is a front end to MCI Mail; DRIVER.EXE is its
  4466.       communication driver
  4467. ----------7B---------------------------------
  4468. INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API
  4469.     DS:DX -> parameter block (see #3093)
  4470. Return: parameter block updated
  4471.  
  4472. (Table 3092)
  4473. Values for Novell XQL function number:
  4474.  00h    log in
  4475.  01h    log out
  4476.  02h    "tNewFcn"
  4477.  03h    "tFreeFcn"
  4478.  04h    "tMoveFldFcn"
  4479.  05h    "tFieldFcn"
  4480.  06h    "tDescribeFcn"
  4481.  07h    "tFetchFcn"
  4482.  08h    "tComputeFcn"
  4483.  09h    "tOrderFcn"
  4484.  0Ah    "tRestrictFcn"
  4485.  0Bh    "tJoinFcn"
  4486.  0Ch    "tInsertFcn"
  4487.  0Dh    "tUpdateFcn"
  4488.  0Eh    "tUpdallFcn"
  4489.  0Fh    "tRemoveFcn"
  4490.  10h    "tRemallFcn"
  4491.  11h    "tResetFcn"
  4492.  12h    "tTransFcn"
  4493.  13h    "tStatFcn"
  4494.  14h    "tDDCreFcn"
  4495.  15h    "tStoreFcn"
  4496.  16h    "tRecallFcn"
  4497.  17h    "tStopFcn"
  4498.  18h    "tDDFileFcn"
  4499.  19h    "tDDFieldFcn"
  4500.  1Ah    "tDDIndexFcn"
  4501.  1Bh    "tDDModFcn"
  4502.  1Ch    "tDDViewFcn"
  4503.  1Dh    "tDDDrpFcn"
  4504.  1Eh    "tDDPathFcn"
  4505.  1Fh    "tDDAttrFcn"
  4506.  20h    "tDDFcn"
  4507.  21h    "tSecurFcn"
  4508.  22h    "tUserFcn"
  4509.  23h    "tAccessFcn"
  4510.  24h    "tPswdFcn"
  4511.  25h    "tCharFcn"
  4512.  26h    "tVersionFcn"
  4513.  27h    "tCnvFcn"
  4514.  28h    "tValFcn"
  4515.  29h    "tMaskFcn"
  4516. SeeAlso: #3093
  4517.  
  4518. Format of XQL parameter block:
  4519. Offset    Size    Description    (Table 3093)
  4520.  00h  4 BYTEs    signature "XQLP"
  4521.  04h    WORD    function number (see #3092)
  4522.  06h    WORD    handle
  4523.  08h    WORD    status
  4524.  0Ah    WORD    session ID
  4525.  0Ch    var    data record (varies by function)
  4526. ---function 00h---
  4527.  0Ch    DWORD    -> user name
  4528.  10h    DWORD    -> password
  4529.  14h    DWORD    -> dictionary
  4530.  18h    DWORD    -> filepath
  4531.  1Ch    DWORD    -> machine name
  4532.  20h    WORD    process ID
  4533. ---function 01h---
  4534.  no additional fields???
  4535. ---function 02h---
  4536.  0Ch    DWORD    -> filename
  4537.  10h    DWORD    -> owner name
  4538.  14h    WORD    open mode
  4539. ---function 03h---
  4540.  no additional fields???
  4541. ---function 04h---
  4542.  0Ch    WORD    "frompos"
  4543.  0Eh    WORD    "topos"
  4544. ---function 05h---
  4545.  0Ch    WORD    subfunction
  4546.  0Eh    WORD    position
  4547.  10h    WORD    count
  4548.  12h    DWORD    -> field list
  4549. ---function 06h---
  4550.  0Ch    WORD    subfunction
  4551.  0Eh    WORD    length of description
  4552.  10h    WORD    position
  4553.  12h    WORD    count
  4554.  14h    DWORD    pointer to description list
  4555. ---function 07h---
  4556.  0Ch    WORD    data length
  4557.  0Eh    WORD    "op"
  4558.  10h    DWORD    "select"
  4559.  14h    DWORD    "reject"
  4560.  18h    DWORD    pointer to data buffer
  4561. ---function 08h---
  4562.  0Ch    DWORD    -> field name
  4563.  10h    WORD    field type
  4564.  12h    WORD    field size
  4565.  14h    WORD    "flddec"
  4566.  16h    WORD    "explen"
  4567.  18h    DWORD    pointer to "expbuf"
  4568. ---function 09h---
  4569.  0Ch    WORD    count
  4570.  0Eh    DWORD    -> field list
  4571. ---function 0Ah---
  4572.  0Ch    WORD    "newexp"
  4573.  0Eh    WORD    "explen"
  4574.  10h    DWORD    -> "expbuf"
  4575. ---function 0Bh---
  4576.  0Ch    DWORD    -> filename
  4577.  10h    DWORD    -> owner name
  4578.  14h    WORD    type of join
  4579.  16h    WORD    "pCount"
  4580.  18h    DWORD    -> "pNames"
  4581.  1Ch    WORD    "sCount"
  4582.  1Eh    DWORD    -> "sNames"
  4583. ---functions 0Ch, 0Dh, 0Fh---
  4584.  0Ch    WORD    file count
  4585.  0Eh    DWORD    -> file list
  4586.  12h    DWORD    count
  4587.  16h    DWORD    -> buffer
  4588. ---function 0Eh---
  4589.  0Ch    WORD    file count
  4590.  0Eh    DWORD    -> file list
  4591.  12h    WORD    "op"
  4592.  14h    DWORD    "select"
  4593.  18h    DWORD    "reject"
  4594.  1Ch    WORD    count
  4595.  1Eh    DWORD    -> "res"
  4596.  22h    DWORD    -> "comp"
  4597. ---function 10h---
  4598.  0Ch    WORD    file count
  4599.  0Eh    DWORD    -> file list
  4600.  12h    WORD    "op"
  4601.  14h    DWORD    "select"
  4602.  18h    DWORD    "reject"
  4603. ---function 11h---
  4604.  0Ch    DWORD    machine name
  4605. ---function 12h---
  4606.  0Ch    WORD    option
  4607. ---function 13h---
  4608.  0Ch    WORD    subfunction
  4609.  0Eh    WORD    length of buffer
  4610.  10h    DWORD    -> buffer
  4611. ---function 14h---
  4612.  0Ch    WORD    subfunction
  4613.  0Eh    DWORD    -> filename
  4614.  12h    WORD    "create"
  4615.  14h    DWORD    -> pathname
  4616.  18h    DWORD    -> owner name
  4617.  1Ch    WORD    owner access restrictions
  4618.  1Eh    WORD    number of fields
  4619.  20h    DWORD    -> field list
  4620.  24h    WORD    number of keys
  4621.  28h    DWORD    -> key list
  4622.  2Ch    WORD    "buflen"
  4623.  2Eh    DWORD    -> create parameters
  4624. ---function 15h---
  4625.  0Ch    DWORD    -> "StoreName"
  4626.  10h    WORD    length of buffer
  4627.  12h    DWORD    -> buffer
  4628. ---function 16h---
  4629.  0Ch    DWORD    -> "RecallName"
  4630.  10h    WORD    owner number
  4631.  12h    DWORD    -> owner list
  4632.  16h    WORD    open mode
  4633.  18h    WORD    length of buffer
  4634.  1Ah    DWORD    -> buffer
  4635. ---function 17h---
  4636.  no additional fields???
  4637. ---function 18h---
  4638.  0Ch    WORD    "rtype"
  4639.  0Eh    WORD    count
  4640.  10h    DWORD    -> "filebuf"
  4641.  14h    WORD    length of following buffer
  4642.  16h    DWORD    -> output buffer
  4643. ---functions 19h, 1Ah---
  4644.  0Ch    WORD    "rtype"
  4645.  0Eh    WORD    count
  4646.  10h    DWORD    -> field buffer
  4647.  14h    WORD    length of following buffer
  4648.  16h    DWORD    -> output buffer
  4649. ---function 1Bh---
  4650.  0Ch    WORD    subfunction
  4651.  0Eh    DWORD    -> filename
  4652.  12h    WORD    "create"
  4653.  14h    DWORD    -> pathname
  4654.  18h    DWORD    -> owner name
  4655.  1Ch    WORD    owner access restrictions
  4656.  1Eh    WORD    field count
  4657.  20h    DWORD    -> field list
  4658.  24h    WORD    number of keys
  4659.  26h    DWORD    -> list of keys
  4660. ---function 1Ch---
  4661.  0Ch    WORD    count
  4662.  0Eh    DWORD    -> view name
  4663.  12h    WORD    length of following buffer
  4664.  14h    DWORD    -> output buffer
  4665. ---function 1Dh---
  4666.  0Ch    DWORD    -> filename
  4667.  10h    WORD    file type
  4668.  12h    WORD    "deletepath"
  4669. ---function 1Eh---
  4670.  0Ch    WORD    "dirtype"
  4671.  0Eh    DWORD    -> pathname
  4672. ---function 1Fh---
  4673.  0Ch    WORD    function
  4674.  0Eh    DWORD    -> field name
  4675.  12h    WORD    attribute
  4676.  14h    WORD    size of buffer
  4677.  16h    DWORD    -> buffer for attributes
  4678. ---function 20h---
  4679.  0Ch    DWORD    -> directory path
  4680.  10h    WORD    function
  4681. ---function 21h---
  4682.  0Ch    DWORD    -> master password
  4683.  10h    WORD    "securityflag"
  4684. ---function 22h---
  4685.  0Ch    DWORD    -> master password
  4686.  10h    WORD    function (add/modify/remove)
  4687.  12h    DWORD    -> user name
  4688.  16h    DWORD    -> password
  4689.  1Ah    WORD    global rights
  4690.  1Ch    WORD    count
  4691.  1Eh    WORD    length of following buffer
  4692.  20h    DWORD    -> "userbuf"
  4693. ---function 23h---
  4694.  0Ch    DWORD    -> master password
  4695.  10h    DWORD    -> user name
  4696.  14h    WORD    function (allow/deny/getrights)
  4697.  16h    WORD    rights
  4698.  18h    DWORD    -> filename
  4699.  1Ch    WORD    number of field names in following buffer
  4700.  1Eh    DWORD    -> field names
  4701.  22h    WORD    maximum buffer length
  4702.  24h    DWORD    -> output buffer
  4703. ---function 24h---
  4704.  0Ch    DWORD    -> user name
  4705.  10h    DWORD    -> password
  4706. ---function 25h---
  4707.  0Ch    WORD    "charFcn"
  4708.  0Eh    WORD    "charType"
  4709.  10h    WORD    "charValue"
  4710. ---function 26h---
  4711.  0Ch    DWORD    -> buffer
  4712. ---function 27h---
  4713.  0Ch    WORD    option
  4714.  0Eh    WORD    type
  4715.  10h    WORD    size
  4716.  12h    WORD    "dec"
  4717.  14h    WORD    "dsize"
  4718.  16h    DWORD    -> value
  4719.  1Ah    DWORD    -> "retval"
  4720.  1Eh    DWORD    -> mask
  4721.  22h    WORD    "justify"
  4722. ---function 28h---
  4723.  0Ch    DWORD    -> field name
  4724.  10h    WORD    length of buffer
  4725.  12h    DWORD    -> buffer for data
  4726. ---function 29h---
  4727.  0Ch    WORD    option
  4728.  0Eh    WORD    type
  4729.  10h    WORD    size
  4730.  12h    WORD    "dec"
  4731.  14h    WORD    length of mask
  4732.  16h    DWORD    -> mask
  4733. --------A-7B8001-----------------------------
  4734. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT
  4735.     AX = 8001h
  4736.     BX = file level
  4737.         0000h binary file
  4738.         0001h CAD/camera image file
  4739.         0002h installed ADI driver
  4740.     CX = horizontal size in pixels
  4741.     DX = vertical size in pixels
  4742. Return: AX = status (0000h initialization failed, 0001h init successful)
  4743.     BX = allowed output format
  4744.         0000h monochrome
  4745.         0001h color (4 bits per pixel)
  4746. SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade"
  4747. --------A-7B8002-----------------------------
  4748. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT
  4749.     AX = 8002h
  4750. SeeAlso: AX=8001h,AX=8003h
  4751. --------A-7B8003-----------------------------
  4752. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT
  4753.     AX = 8003h
  4754. SeeAlso: AX=8001h,AX=8002h
  4755. --------r-7C---------------------------------
  4756. INT 7C U - IBM REXX88PC command language
  4757.     ???
  4758. --------E-7C---------------------------------
  4759. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  4760. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  4761.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  4762. Notes:    this vector is overwritten when GO32 starts but is not restored by
  4763.       early versions of the extender
  4764.     the newest versions of GO32 dynamically allocate the vectors used
  4765.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  4766. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  4767. --------P-7C---------------------------------
  4768. INT 7C - PRINDIR v8.02+ - API
  4769.     AH = function
  4770.        00h set output to Invisible mode
  4771.        01h set output to LPT1
  4772.        02h set output to LPT2
  4773.        03h set output to LPT3
  4774.        04h set output to COM1
  4775.        05h set output to COM2
  4776.        06h set output to COM3
  4777.        07h set output to COM4
  4778.        08h set output to screen
  4779.        09h set output to file
  4780.        0Ah change file path
  4781.            ES:DI -> new path
  4782.            CX = length of path (max 41, but not range-checked)
  4783.        0Bh change file name
  4784.            ES:DI -> new filename
  4785.            CX = length of new name (max 41, but not range-checked)
  4786.        0Ch set redirected device
  4787.         (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  4788.        0Dh force buffer dump
  4789.        0Eh set display color
  4790.            AL = new color attribute (see #0013 at INT 10/AH=08h)
  4791.        0Fh set popup hotkey
  4792.            AL = hotkey scancode
  4793.        10h toggle byte display
  4794.            AL = new state (00h off, 01h on)
  4795.        11h change buffer flush delay
  4796.            AL = timer ticks before flush
  4797. Return: AX = status
  4798.         0000h successful
  4799.         0001h invalid function or nothing in buffer to be dumped
  4800.         (documented as "nonzero = error")
  4801. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  4802.       Creations
  4803. Notes:    the installation check consists of testing for the ASCIZ signature
  4804.       "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond
  4805.       the start of the interrupt handler
  4806.     prior versions of PRINDIR used INT 7A instead of INT 7C
  4807. SeeAlso: INT 7A"PRINDIR"
  4808. Index:    hotkeys;PRINDIR
  4809. --------A-7C---------------------------------
  4810. INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER
  4811. Note:    this is the default interrupt vector for rendering hardcopy drivers
  4812.       instead of INT 7A used by AutoCAD drivers
  4813. SeeAlso: INT 7A/AX=0001h"AutoCAD"
  4814. --------N-7C---------------------------------
  4815. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  4816. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4817.       which provides an API on top of it Data Link Interface, allowing the
  4818.       use of any of several network transport layers; this product is
  4819.       called SK-PASSPORT in the USA.
  4820. Notes:    The installation check consists of testing for the ASCII signature
  4821.       string "UPPS_DLI" immediately preceding the interrupt handler.
  4822.     To find the service interrupt being used by the driver, an application
  4823.       should scan through the interrupt table until it finds an interrupt
  4824.       vector with the "UPPS_DLI" string.
  4825.     There may be more than one DLI loaded, each having its own service
  4826.       interrupt.
  4827. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  4828. Index:    installation check;SK-UPPS
  4829. --------N-7C0000-----------------------------
  4830. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  4831.     AX = 0000h
  4832. Return: AH = major DLI version
  4833.     AL = minor DLI version
  4834.     DX = OEM signature (see #3094)
  4835.     CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  4836. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  4837.  
  4838. (Table 3094)
  4839. Values for SK-UPPS Data Link Interface OEM signature (defined by SK):
  4840.  0001h        experimental
  4841.  3343h    ('3C')    3COM
  4842.  4942h    ('IB')    IBM
  4843.  4943h    ('IC')    Intellicom
  4844.  494Eh    ('IN')    Intel
  4845.  4B4Fh    ('KO')    Kodiak
  4846.  4D41h    ('MA')    Madge
  4847.  4E45h    ('NE')    Novell
  4848.  4F43h    ('OC')    Olicom
  4849.  5349h    ('SI')    Siemens
  4850.  534Bh    ('SK')    Schneider & Koch (SysKonnect)
  4851.  5744h    ('WD')    Western Digital
  4852. --------N-7C0001-----------------------------
  4853. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  4854.     AX = 0001h
  4855. Return: AX = completion code (see #3095)
  4856. Note:    the DLI will refuse to unload if there are any protocols
  4857.       (see AX=0007h) or clients (see AX=0010h) active.
  4858. Index:    uninstall;SK-UPPS Data Link Interface
  4859.  
  4860. (Table 3095)
  4861. Values for SK-UPPS completion code:
  4862.  0000h    SUCCESS
  4863.  0005h    INVALID_MULTICAST
  4864.  0006h    BUFFER_TOO_SMALL
  4865.  0007h    NO_BUFFERS_LEFT
  4866.  0008h    NO_RESOURCES_LEFT
  4867.  000Bh    ILLEGAL_PROTOCOL_ID
  4868.  000Ch    PROTOCOL_IN_USE
  4869.  000Dh    NO_MULTICAST_ADDRESS
  4870.  000Fh    PROTOCOLS_ACTIVE
  4871.  0010h    CLIENTS_ACTIVE
  4872.  001Bh    INVALID_MODE
  4873.  001Ch    MODE_NOT_SUPPORTED
  4874.  FFFFh    UNKNOWN_SERVICE
  4875. --------N-7C0002-----------------------------
  4876. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  4877.     AX = 0002h
  4878.     ES:DI -> Status Information Block (SIB) (see #3107)
  4879. Return: AX = completion code (see #3095)
  4880. Note:    GET DRIVER INFO (AX=000Eh) should be used instead.
  4881. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  4882. --------N-7C0003-----------------------------
  4883. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  4884.     AX = 0003h
  4885.     ES:DI -> new node address (6 bytes)
  4886. Return: AX = completion code (see #3095)
  4887. Note:    the DLI will refuse to change the address if any protocols
  4888.       (see AX=0007h) are active
  4889. SeeAlso: AX=0001h,AX=000Eh
  4890. --------N-7C0004-----------------------------
  4891. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  4892.     AX = 0004h
  4893.     DX = protocol ID (see AX=0007h,#3098)
  4894. Return: AX = completion code (see also #3095)
  4895.         0000h successful
  4896.         ES:BX -> Memory Buffer (Mbuf) (see #3096)
  4897. Note:    if the DLI has no free Mbufs, it will set an internal flag for the
  4898.       protocol and later call the protocol's Event Upcall with
  4899.       EV_BUFFER_AVAILABLE (see #3102,#3103) as soon as an Mbuf becomes
  4900.       available.  There will only be one "buffer available" Upcall, even
  4901.       if this function has been called several times before.
  4902. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  4903.  
  4904. Format of SK-UPPS Memory Buffer (Mbuf):
  4905. Offset    Size    Description    (Table 3096)
  4906.  00h    DWORD    -> NEXT Mbuf (linked list)
  4907.  04h    WORD    OFFSET of actual data within DATA area
  4908.  06h  2 BYTEs    reserved (currently unused)
  4909.  08h    WORD    LENGTH of actual data found in DATA area starting at OFFSET
  4910.  0Ah  2 BYTEs    reserved (currently unused)
  4911.  0Ch    DWORD    -> DATA area (size can be obtained via AX=000Eh call)
  4912.  10h    WORD    PROTOCOL ID of protocol currently "owning" the Mbuf
  4913.  12h    BYTE    IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  4914.  13h    BYTE    RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  4915. --------N-7C0005-----------------------------
  4916. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  4917.     AX = 0005h
  4918.     ES:BX -> Mbuf (see #3096)
  4919. Return: nothing
  4920. SeeAlso: AX=0004h
  4921. --------N-7C0006-----------------------------
  4922. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  4923.     AX = 0006h
  4924.     ES:BX -> Mbuf (see #3096)
  4925. Return: nothing
  4926. Notes:    The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  4927.       at OFFSET. A complete and valid frame must be stored there. The DLI
  4928.       will only copy the current node address (see AX=0003h) to the
  4929.       source node field of the frame's MAC header.
  4930.     On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  4931.       of the value found in the LENGTH field.
  4932.     This function returns immediately; the DLI will call the protocol's
  4933.       Transmit Upcall (see #3097) when the frame has been sent.
  4934.     The Mbuf's IN USE field will be non-zero until the DLI calls the
  4935.       Transmit Upcall.
  4936. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  4937.  
  4938. (Table 3097)
  4939. Values SK-UPPS Transmit Upcall is called with:
  4940.     ES:BX -> Mbuf (NEXT field destroyed)
  4941.     interrupts disabled
  4942. Note:    On FDDI the bytes of the source and destination node fields in the MAC
  4943.       header have been bit-swapped to physical address format.
  4944. --------N-7C0007-----------------------------
  4945. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  4946.     AX = 0007h
  4947.     ES:BX -> Protocol Control Block (see #3098)
  4948. Return: AX = completion code (see #3095)
  4949. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4950.       which provides an API on top of its Data Link Interface, allowing the
  4951.       use of any of several network transport layers
  4952. SeeAlso: AX=0008h,AX=000Bh
  4953.  
  4954. Format of SK-UPPS Protocol Control Block (PCB):
  4955. Offset    Size    Description    (Table 3098)
  4956.  00h    WORD    (big-endian) protocol type
  4957.  02h    WORD    protocol mode (see #3099)
  4958.  04h    DWORD    -> Receive Upcall routine (see #3100)
  4959.  08h    DWORD    -> Transmit Upcall routine
  4960.  0Ch    DWORD    -> Event Upcall routine (see #3102)
  4961.  10h    DWORD    -> ASCIZ protocol name (zero if none)
  4962.  14h    WORD    protocol ID will be returned here (always non-zero)
  4963.  
  4964. Bitfields for SK-UPPS protocol mode:
  4965. Bit(s)    Description    (Table 3099)
  4966.  0    promiscuous mode; protocol receives all frames regardless of their
  4967.       destination (PROTOCOL TYPE must be FFFFh)
  4968.  1    if set, protocol's Event Upcall will be called on entry and exit of the
  4969.       DLI's Interrupt Service Routine (see #3103)
  4970.  2    DLI 2.2+ hook mode; protocol receives all directed frames destined for
  4971.       this station (PROTOCOL TYPE must be FFFFh)
  4972.  3    DLI 2.3+ receive error frames (only valid in promiscuous mode (0))
  4973.  4-5    DLI 2.5+ frame type:
  4974.     00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  4975.     01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  4976.           (offset 0) of PROCOTOL TYPE field; LSB must be zero
  4977.     10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  4978.           field (high-low)
  4979.     11 reserved (currently unused)
  4980.  6    DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  4981.       EV_BUFFER_WANTED, when DLI runs out of Mbufs
  4982.  7    DLI 2.7+ chain mode; if set, client allows the specified frame type to
  4983.       be shared with other clients
  4984.  8    DLI 2.8+ receive non-LLC frames rather than LLC frames
  4985.  9    DLI 2.8+ receive all multicast frames (see also AX=0009h)
  4986.  10-15    reserved (currently unused; must be zero)
  4987. Notes:    If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  4988.       mode is set, the protocol receives all frames that did not match
  4989.       any registered frame type (demultiplexor mode).
  4990.     Protocols using "promiscuous", "hook" or "chain" mode should always
  4991.       return from the Receive Upcall with the received Mbuf in ES:BX and
  4992.       the Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  4993.       BUFFER function (see AX=000Fh).
  4994.     Some DLIs do not support all or even any of the "promiscuous",
  4995.       "receive non-LLC" and "receive all multicasts" mode bits.
  4996. SeeAlso: #3098
  4997.  
  4998. (Table 3100)
  4999. Values SK-UPPS Receive Upcall is called with:
  5000.     ES:BX -> Mbuf
  5001.     AX = receive status (see #3101) (also stored in Mbuf's RECEIVE STATUS field)
  5002.     interrupts disabled
  5003. Return: nothing
  5004. SeeAlso: #3102
  5005.  
  5006. Bitfields for SK-UPPS receive status:
  5007. Bit(s)    Description    (Table 3101)
  5008.  0-2    reserved (0), currently unused
  5009.  3    frame check sequence (FCS) error
  5010.  4    overflow (frame too long)
  5011.  5    framing error
  5012.  6    reserved (0), currently unused
  5013.  7    non-LLC frame (see #3099 [bit 8])
  5014.  8-15    reserved (0), currently unused
  5015. Notes:    The protocol's Receive Upcall routine will be called whenever a frame
  5016.       matching the specified frame type is received. A received frame is
  5017.       passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  5018.       is LENGTH bytes.
  5019.     The receive status passed to the Receive Upcall in register AL is
  5020.       always zero, except for protocols using "non-LLC" mode (8 of PCB's
  5021.       protocol mode field) or "promiscuous" mode together with "receive
  5022.       error frames" (0 & 3).
  5023.     Upcalls are FAR routines and must return with a RET FAR. If the Carry
  5024.       Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  5025.       must point to an Mbuf, which the DLI will then pass to the RELEASE
  5026.       BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  5027.  
  5028. (Table 3102)
  5029. Values SK-UPPS Event Upcall is called with:
  5030.     AX = event code (see #3103)
  5031. Return: nothing
  5032. Note:    All Event Upcalls may be ignored by the protocol.
  5033. SeeAlso: #3100
  5034.  
  5035. (Table 3103)
  5036. Values for SK-UPPS Event Upcall event code:
  5037.  00h    EV_BUFFER_AVAILABLE client may now call REQUEST BUFFER (AX=0004h)
  5038.  01h    EV_ISR_START        start of Interrupt Service Routine
  5039.  02h    EV_ISR_END        end of ISR (see #3099 [bit 1])
  5040.  03h    EV_BUFFER_WANTED    DLI temporarily out of Mbufs
  5041.  04h    EV_NETWORK_STATUS   DLI 2.8+ network status -- DX=status (see #3104)
  5042.  05h    EV_IO_CONTROL        DLI 2.8+ I/O control -- DX=subfunc (see AX=0016h)
  5043. SeeAlso: #3102
  5044.  
  5045. Bitfields for EV_NETWORK_STATUS in register DX:
  5046. Bit(s)    Description    (Table 3104)
  5047.     Token-Ring        FDDI
  5048.  15    SIGNAL_LOSS        SIGNAL_LOSS
  5049.  14    HARD_ERROR        HARD_ERROR
  5050.  13    SOFT_ERROR        SOFT_ERROR
  5051.  12    TRANSMIT_BEACON        TRANSMIT_BEACON
  5052.  11    LOBE_WIRE_FAULT        PATH_TEST_FAILED
  5053.  10    AUTO_REMOVAL        SELF_TEST_REQUIRED
  5054.  9    reserved        reserved
  5055.  8    REMOVE_RECEIVED        REMOTE_DISCONNECT
  5056.  7    COUNTER_OVERFLOW    reserved
  5057.  6    SINGLE_STATION        DUPLICATE_ADDRESS
  5058.  5    RING_RECOVERY        NO_RING_OP_STATUS
  5059.  4    reserved        VERSION_MISMATCH
  5060.  3    reserved        STUCK_BYPASS
  5061.  2    reserved        FDDI_EVENT
  5062.  1    reserved        RING_OP_CHANGE
  5063.  0    reserved        reserved
  5064. Note:    EV_NETWORK_STATUS is not supported on Ethernet
  5065. --------N-7C0008-----------------------------
  5066. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  5067.     AX = 0008h
  5068.     BX = protocol ID (see #3098)
  5069. Return: AX = completion code (see #3095)
  5070. Note:    the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  5071.       they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  5072.     all multicast addresses registered for this protocol will be disabled.
  5073.     after this function returns, the protocol's Upcall routines will no
  5074.       longer be called.
  5075. SeeAlso: AX=0007h,AX=000Bh
  5076. --------N-7C0009-----------------------------
  5077. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  5078.     AX = 0009h
  5079.     BX = protocol ID (see #3098)
  5080.     ES:DI -> multicast address (6 bytes)
  5081. Return: AX = completion code (see #3095)
  5082. Notes:    The broadcast address is always enabled.
  5083.     Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  5084.       (AX=0007h) to receive all multicast frames.
  5085. SeeAlso: AX=000Ah,AX=0014h
  5086. --------N-7C000A-----------------------------
  5087. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  5088.     AX = 000Ah
  5089.     BX = protocol ID (see #3098)
  5090.     ES:DI -> multicast address (6 bytes)
  5091. Return: AX = completion code (see #3095)
  5092. SeeAlso: AX=0009h,AX=0014h
  5093. --------N-7C000B-----------------------------
  5094. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  5095.     AX = 000Bh
  5096.     ES:DI -> protocol ID buffer
  5097.     CX = number of 2-byte protocol IDs that may be stored in buffer
  5098. Return: AX = completion code (see #3095)
  5099.     CX = number of active protocols (regardless of value returned in AX)
  5100.     protocol ID buffer filled with active protocol IDs
  5101. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5102.       which provides an API on top of its Data Link Interface, allowing the
  5103.       use of any of several network transport layers
  5104. Note:    If the buffer supplied is too small, CX still contains the total number
  5105.       of active protocols and the buffer has been filled until full.
  5106. SeeAlso: AX=000Ch,AX=0014h
  5107. --------N-7C000C-----------------------------
  5108. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  5109.     AX = 000Ch
  5110.     BX = protocol ID (see #3098,AX=000Bh)
  5111.     ES:DI -> Protocol Status Block (see #3105)
  5112. Return: AX = completion code (see #3095)
  5113. SeeAlso: AX=000Bh,AX=0014h
  5114.  
  5115. Format of SK-UPPS Protocol Status Block (PSB):
  5116. Offset    Size    Description    (Table 3105)
  5117.  00h    DWORD    -> ASCIZ protocol name
  5118.  04h    WORD    protocol mode (see #3099)
  5119.  06h    WORD    protocol type (see AX=0007h)
  5120.  08h    WORD    number of registered multicasts (see AX=0009h,AX=0014h)
  5121. --------N-7C000D-----------------------------
  5122. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  5123.     AX = 000Dh
  5124.     BX = flag: 0=don't clear statistics, 1=clear statistics
  5125.     ES:DI -> Statistics Data Block (see #3106)
  5126. Return: AX = completion code (see #3095)
  5127. SeeAlso: AX=0002h,AX=0015h
  5128.  
  5129. Format of SK-UPPS Statistics Data Block (SDB):
  5130. Offset    Size    Description    (Table 3106)
  5131.  00h    DWORD    node uptime in ticks (1/18.21 sec.)
  5132.  04h    DWORD    bytes received
  5133.  08h    DWORD    bytes transmitted
  5134.  0Ch    DWORD    frames received
  5135.  10h    DWORD    frames transmitted
  5136.  14h    DWORD    multicast bytes received
  5137.  18h    DWORD    multicast frames received
  5138.  1Ch    DWORD    unrecognized frames
  5139.  20h    WORD    missed frames
  5140.  22h    WORD    frame check sequence (FCS) errors
  5141.  24h    WORD    framing errors
  5142.  26h    WORD    babbling errors
  5143.  28h    WORD    late collision errors
  5144.  2Ah    WORD    loss of carrier errors
  5145.  2Ch    WORD    16 retries failed errors
  5146.  2Eh    WORD    overflow errors
  5147. Note:    fields 26h through 2Ch are always zero, except in some very old
  5148.       versions of the DLI.    Use GET MEDIA STATISTICS (AX=0015h) to get
  5149.       more detailed information.
  5150. --------N-7C000E-----------------------------
  5151. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  5152.     AX = 000Eh
  5153.     ES:DI -> Driver Information Block (see #3107)
  5154.     BX = offset of 1st field within DIB to be returned
  5155.     CX = number of bytes to be returned
  5156. Return: AX = completion code (see #3095)
  5157.     CX = number of bytes copied (regardless of value returned in AX)
  5158. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5159.       which provides an API on top of its Data Link Interface, allowing the
  5160.       use of any of several network transport layers
  5161. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  5162.  
  5163. Format of SK-UPPS Driver Information Block (DIB):
  5164. Offset    Size    Description    (Table 3107)
  5165.  00h  6 BYTEs    physical node address (from adapter's ROM)
  5166.  06h  6 BYTEs    current node address (see AX=0003h)
  5167.  0Ch    BYTE    adapter id (defined by OEM)
  5168.  0Dh    BYTE    IRQ line (FFh if none)
  5169.  0Eh    DWORD    -> shared memory (zero if none)
  5170.  12h    DWORD    size of shared memory (zero if none)
  5171.  16h    WORD    base I/O port (zero if none)
  5172.  18h    BYTE    DMA line (FFh if none)
  5173.  19h    BYTE    DLI 2.4+ topology (see AX=0000h)
  5174.  1Ah    WORD    size of an Mbuf's DATA area (see #3096)
  5175.  1Ch  2 BYTEs    reserved (currently unused)
  5176.  1Eh    WORD    total number of Mbufs the DLI has
  5177.  20h    WORD    maximum number of Mbufs that can be allocated via REQUEST
  5178.           BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  5179.  ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  5180.  22h    DWORD    -> ASCIZ adapter name
  5181.  26h    WORD    number of I/O ports used (zero if none)
  5182.  28h    DWORD    line speed in bits/sec.
  5183. --------N-7C000F-----------------------------
  5184. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  5185.     AX = 000Fh
  5186.     ES:BX -> Mbuf (see #3096)
  5187. Return: nothing
  5188. Notes:    A protocol may call this function instead of returning the Mbuf
  5189.       directly from the Receive Upcall if it is running in "promiscuous",
  5190.       "hook" or "chain" mode.
  5191. SeeAlso: AX=0007h
  5192. --------N-7C0010-----------------------------
  5193. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  5194.     AX = 0010h
  5195. Return: nothing
  5196. Notes:    An application having no active protocols may call this function to
  5197.       prevent the DLI from unloading.
  5198. SeeAlso: AX=0001h,AX=0011h
  5199. --------N-7C0011-----------------------------
  5200. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  5201.     AX = 0011h
  5202. Return: nothing
  5203. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5204.       which provides an API on top of its Data Link Interface, allowing the
  5205.       use of any of several network transport layers
  5206. SeeAlso: AX=0010h
  5207. --------N-7C0012-----------------------------
  5208. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  5209.     AX = 0012h
  5210.     DX = protocol ID (see #3098)
  5211. Return: AX = completion code (see #3095)
  5212.     if AX=0000h: ES:BX -> Mbuf (see #3096)
  5213. Note:    If the protocol wants to be informed when an Mbuf becomes available,
  5214.       REQUEST BUFFER (AX=0004h) should be used instead.
  5215. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  5216. --------N-7C0013-----------------------------
  5217. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  5218.     AX = 0013h
  5219.     ES:BX -> Mbuf (see #3096)
  5220. Return: nothing
  5221. Notes:    Returns immediately; The protocol's Transmit Upcall will NOT be called.
  5222.     The Mbuf may no more be used by the protocol in any way (i.e. the
  5223.       Mbuf's IN USE field may not be polled).
  5224. SeeAlso: AX=0004h,AX=0013h
  5225. --------N-7C0014-----------------------------
  5226. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  5227.     AX = 0014h
  5228.     BX = protocol ID (see #3098,AX=000Bh)
  5229.     ES:DI -> multicast address buffer
  5230.     CX = number of 6-byte multicast addresses that may be stored in buffer
  5231. Return: AX = completion code (see #3095)
  5232.     CX = number of registered multicast addresses for this protocol
  5233.       (regardless of value returned in AX)
  5234.     multicast address buffer filled with multicast addresses registered for
  5235.       this protocol
  5236. Note:    If the buffer supplied is too small, CX still contains the total number
  5237.       of registered multicast addresses for this protocol and the buffer
  5238.       has been completely filled
  5239. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  5240. --------N-7C0015-----------------------------
  5241. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  5242.     AX = 0015h
  5243.     ES:DI -> media-specific statistics buffer (see #3108,#3109,#3110)
  5244.     BX = offset of 1st field within MSS to be returned
  5245.     CX = number of bytes to be returned
  5246. Return: AX = completion code (see #3095)
  5247.     CX = number of bytes copied (regardless of value returned in AX)
  5248. Note:    not supported by all DLIs (will return AX=FFFFh if not supported).
  5249. SeeAlso: AX=0000h,AX=000Dh
  5250.  
  5251. Format of SK-UPPS media-specific statistics for Ethernet:
  5252. Offset    Size    Description    (Table 3108)
  5253.  00h    DWORD    alignment errors
  5254.  04h    DWORD    frame check sequence (FCS) errors
  5255.  08h    DWORD    single collision frames
  5256.  0Ch    DWORD    multiple collision frames
  5257.  10h    DWORD    signal quality error (SQE) test errors
  5258.  14h    DWORD    deferred transmissions
  5259.  18h    DWORD    late collisions
  5260.  1Ch    DWORD    excessive collisions
  5261.  20h    DWORD    internal MAC transmit errors
  5262.  24h    DWORD    carrier sense errors
  5263.  28h    DWORD    excessive deferrals
  5264.  2Ch    DWORD    frame too longs
  5265.  30h    DWORD    in range length errors
  5266.  34h    DWORD    out of range length fields
  5267.  38h    DWORD    internal MAC receive errors
  5268.  
  5269. Format of SK-UPPS media-specific statistics for FDDI:
  5270. Offset    Size    Description    (Table 3109)
  5271.  00h    DWORD    SMT operating version id (refer to ANSI 7.1.2.2)
  5272.  04h    DWORD    SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  5273.           5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  5274.  08h    DWORD    SMT frames sent
  5275.  0Ch    DWORD    SMT frames received
  5276.  10h    DWORD    SMT ring up count
  5277.  14h  6 BYTEs    MAC upstream neighbour
  5278.  1Ah  6 BYTEs    MAC downstream neighbour
  5279.  20h    DWORD    MAC frame counter (refer to ANSI MAC 2.2.1)
  5280.  24h    DWORD    MAC error counter ( " )
  5281.  28h    DWORD    MAC lost counter ( " )
  5282.  2Ch    BYTE    port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  5283.           is reported as the absolute value of the exponent)
  5284.  2Dh    BYTE    port 2 link error estimate ( " )
  5285.  2Eh  2 BYTEs    reserved (currently unused)
  5286.  30h    DWORD    attachment class: 1=single-attachment (S PORT),
  5287.           2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  5288.  34h    DWORD    attachment optical bypass present: 1=true, 2=false
  5289.  
  5290. Format of SK-UPPS media-specific statistics for Token-Ring:
  5291. Offset    Size    Description    (Table 3110)
  5292.  00h  6 BYTEs    upstream neighbour
  5293.  06h    WORD    local ring number
  5294.  08h    DWORD    ring up count
  5295.  0Ch    DWORD    signal loss errors
  5296.  10h    DWORD    lobe wire faults
  5297.  14h    DWORD    ring recovery count
  5298.  18h    DWORD    line errors
  5299.  1Ch    DWORD    burst errors
  5300.  20h    DWORD    ARI/FCI errors
  5301.  24h    DWORD    lost frame errors
  5302.  28h    DWORD    receive congestion errors
  5303.  2Ch    DWORD    frame copied errors
  5304.  30h    DWORD    token errors
  5305.  34h    DWORD    DMA bus errors
  5306.  38h    DWORD    DMA parity errors
  5307.  3Ch    DWORD    receive overflow errors
  5308. --------N-7C0016-----------------------------
  5309. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL
  5310.     AX = 0016h
  5311.     DX = subfunction; bits 14-15 specify direction of I/O:
  5312.         00 no data at all (ES:BX undefined)
  5313.         01 driver -> application (GET)
  5314.         10 application -> driver (SET)
  5315.         11 both directions (GET/SET)
  5316.     ES:BX -> I/O buffer (optional)
  5317.     CX = size of buffer (if ES:BX valid)
  5318. Return: AX = completion code; defined by OEM
  5319. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5320.       which provides an API on top of its Data Link Interface, allowing the
  5321.       use of any of several network transport layers
  5322. Notes:    not supported by all DLIs (will return AX=FFFFh if not supported)
  5323.     subfunction codes are defined by OEMs
  5324. SeeAlso: AX=0001h
  5325. --------N-7C0017-----------------------------
  5326. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  5327.     AX = 0017h
  5328. Return: AX = completion code (see #3095)
  5329. Notes:    not supported by all DLIs (will return AX=FFFFh, if not supported).
  5330.     must be called with interrupts disabled; when the client re-enables
  5331.       interrupts, an interrupt will be generated and reported to the client
  5332.       through an Event Upcall (see #3102 [EV_ISR_START/EV_ISR_END])
  5333. SeeAlso: AX=0007h
  5334. --------t-7D---------------------------------
  5335. INT 7D O - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  5336. Note:    this interface has been moved to INT 2D; there are no known
  5337.       implementations on INT 7D
  5338. SeeAlso: INT 2D"AMIS",INT 2F"NOTES"
  5339. --------S-7D---------------------------------
  5340. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  5341. SeeAlso: INT 7E"YTERM"
  5342. --------E-7D---------------------------------
  5343. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  5344. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5345.       early versions of the extender
  5346.     the newest versions of GO32 dynamically allocate the vectors used
  5347.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5348. SeeAlso: INT 0D,INT 7C"GO32",INT 7E"GO32"
  5349. --------U-7D---------------------------------
  5350. INT 7D - HyperPAD v2.2 - API ACCESS
  5351. Note:    this vector is hooked but immediately passed on (without checking
  5352.       whether the previous handler was 0000h:0000h).  The sole purpose of
  5353.       this vector is to provide the address of the data area described
  5354.       below (see #3111).
  5355.  
  5356. Format of HyperPAD data area:
  5357. Offset    Size    Description    (Table 3111)
  5358.  -16h    DWORD    pointer to ??? FAR function
  5359.  -12h    DWORD    pointer to callback setting function
  5360.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  5361.  -0Eh 6 BYTEs    signature "BRC001"
  5362.  -08h    DWORD    pointer to previous INT 7D handler
  5363.  -04h    DWORD    pointer to ??? data
  5364.  00h        HyperPAD INT 7D handler
  5365. ----------7D---------------------------------
  5366. INT 7D - IBM DOS 6.1 E.EXE - ???
  5367. Note:    E.EXE checks whether this interrupt is in use (not 0000h:0000h),
  5368.       and if it is used, attempts to load E55VGA.EX instead of the
  5369.       default E.EX overlay.     However, E55VGA.EX is not included in
  5370.       IBM DOS 6.1.
  5371. --------G-7D00-------------------------------
  5372. INT 7D - SCSILink - RESET SCSI BUS
  5373.     AH = 00h
  5374. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  5375.       cross assemblers and similar products to communicate with Cross
  5376.       Products hardware debuggers
  5377. Desc:    reset all devices on the SCSI bus
  5378. Note:    the installation check is the signature "SCSILINK" immediately prior
  5379.       to the interrupt handler
  5380. Index:    installation check;SCSILink
  5381. --------G-7D01-------------------------------
  5382. INT 7D - SCSILink - CONNECT TO TARGET
  5383.     AH = 01h
  5384.     AL = target ID
  5385. Return: CF clear if successful
  5386.     CF set on error
  5387.         AL = initiator error
  5388.         AH = target error
  5389. Desc:    arbitrate the use of the bus and select the specified target device
  5390. --------G-7D02-------------------------------
  5391. INT 7D - SCSILink - SEND COMMAND
  5392.     AH = 02h
  5393.     ES:BX -> parameter block (see #3112)
  5394. Return: CF clear if successful
  5395.     CF set on error
  5396.         AL = initiator error
  5397.         AH = target error
  5398. Desc:    send the specified command block to the target device and perform any
  5399.       related I/O
  5400.  
  5401. Format of SCSILink parameter block:
  5402. Offset    Size    Description    (Table 3112)
  5403.  00h    DWORD    size of command block
  5404.  04h    DWORD    address of command block (see #3113)
  5405.  08h    DWORD    size of buffer
  5406.  0Ch    DWORD    address of buffer
  5407.  
  5408. Format of SCSILink command block:
  5409. Offset    Size    Description    (Table 3113)
  5410.  00h        info not yet available
  5411. --------G-7D03-------------------------------
  5412. INT 7D - SCSILink - SET TIMEOUT
  5413.     AH = 03h
  5414.     AL = timeout selector (see #3114)
  5415.     BX = new value in 55ms ticks
  5416. Desc:    change an internal timeout value to allow communication with very
  5417.       slow targets
  5418.  
  5419. (Table 3114)
  5420. Values for SCSILink timeout selector:
  5421.  00h    time to wait for bus (default 18)
  5422.  01h    time to wait for new phase (default 5)
  5423.  02h    maximum time to send/receive block (default 18)
  5424.  03h    time to wait for reselect (default 180)
  5425. --------G-7D04-------------------------------
  5426. INT 7D - SCSILink - GET ERROR STRING
  5427.     AH = 04h
  5428.     AL = error number
  5429. Return: ES:BX -> ASCIZ error string for error number
  5430. --------G-7D05-------------------------------
  5431. INT 7D - SCSILink - GET ADDRESS
  5432.     AH = 05h
  5433. Return: AL = DMA channel
  5434.     AH = initiator ID
  5435.     BX = card address
  5436. Desc:    determine the current hardware configuration
  5437. --------G-7D06-------------------------------
  5438. INT 7D - SCSILink - PUT DATA
  5439.     AH = 06h
  5440.     CX = number of bytes to store (0001h-0100h)
  5441.     ES:BX -> data to be saved
  5442. Return: CF clear if successful
  5443.     CF set on error
  5444.         AL = error code (01h = too much data)
  5445. Note:    the specified data is stored in SCSILink's PSP
  5446. SeeAlso: AH=07h
  5447. --------G-7D07-------------------------------
  5448. INT 7D - SCSILink - GET DATA
  5449.     AH = 07h
  5450.     CX = number of bytes to retrieve (0001h-0100h)
  5451.     ES:BX -> buffer for data
  5452. Return: CF clear if successful
  5453.     CF set on error
  5454.         AL = error code (01h = too much data)
  5455. Note:    retrieve data previously stored with AH=06h
  5456. SeeAlso: AH=06h
  5457. --------G-7D08-------------------------------
  5458. INT 7D - SCSILink - TERMINATE SESSION
  5459.     AH = 08h
  5460. Desc:    indicate to any other programs that intercept INT 7D that the program
  5461.       has finished with the link
  5462. Note:    the program should call this function even if a SCSI error caused its
  5463.       termination
  5464. --------G-7D09-------------------------------
  5465. INT 7D - SCSILink - POLL REQUEST
  5466.     AH = 09h
  5467.     AL = target ID
  5468. Return: AL = status
  5469.         FEh resident driver experienced SCSI error
  5470.         FFh resident driver handleded event
  5471. Desc:    give any drivers chained onto INT 7D a chance to handle an exception
  5472.       not specifically handled by the calling program
  5473. Notes:    this service exists so that resident disk servers, etc. can continue
  5474.       running even while debuggers and profilers are active
  5475.     the resident driver assumes that a connection has been established and
  5476.       attempts to leave the target connected
  5477. --------*-7E---------------------------------
  5478. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  5479. --------S-7E---------------------------------
  5480. INT 7E U - YTERM 1.4 - ???
  5481. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  5482. --------E-7E---------------------------------
  5483. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  5484. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  5485.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  5486. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5487.       early versions of the extender
  5488.     the newest versions of GO32 dynamically allocate the vectors used
  5489.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5490. SeeAlso: INT 0E,INT 7D"GO32",INT 7F"GO32"
  5491. --------s-7E00-------------------------------
  5492. INT 7E - MaxSBOS v0.21 - GET ???
  5493.     AH = 00h
  5494. Return: DX:AX -> ???
  5495. SeeAlso: AH=01h,AH=02h,AH=03h
  5496. --------s-7E00F6-----------------------------
  5497. INT 7E - SBOS v3.82 - SET ???
  5498.     AX = 00F6h
  5499.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  5500. Return: AX=00F9h,AX=00FEh
  5501. --------s-7E00F7-----------------------------
  5502. INT 7E - SBOS v3.82 - GET ???
  5503.     AX = 00F7h
  5504. Return: AX = status
  5505.         0000h failed
  5506.         0001h successful
  5507.         BX = ??? (if nonzero, ??? is hooked) (see AX=00FFh)
  5508.         CH = ???
  5509.         CL = ???
  5510. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  5511. --------s-7E00F9-----------------------------
  5512. INT 7E - SBOS v3.82 - SET ???
  5513.     AX = 00F9h
  5514.     BX = ???
  5515. SeeAlso: AX=00F6h,AX=00FBh,AX=00FDh
  5516. --------s-7E00FB-----------------------------
  5517. INT 7E - SBOS v3.82 - SET ???
  5518.     AX = 00FBh
  5519.     BL = ???
  5520. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  5521. --------s-7E00FD-----------------------------
  5522. INT 7E - SBOS v3.82 - SET ???
  5523.     AX = 00FDh
  5524.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  5525. SeeAlso: AX=00F9h,AX=00FEh
  5526. --------s-7E00FE-----------------------------
  5527. INT 7E - SBOS v3.82 - UNINSTALL
  5528.     AX = 00FEh
  5529. Return: AX = status
  5530.         0000h successful
  5531.         00FCh unable to unhook INT 21
  5532.         00FDh unable to unhook INT 09
  5533.         00FEh unable to release memory
  5534. Program: SBOS is a SoundBlaster emulator for the Gravis UltraSound
  5535. Range:    SBOS may use INT 78-INT 7F
  5536. Notes:    the installation check for SBOS is to test for the ASCII signature
  5537.       "SBOS" at offset 0Ah in the interrupt handler's segment (similar
  5538.       to one of the possible EMS installation checks)
  5539.     this function may not be called if any SBOS vectors have been hooked
  5540. SeeAlso: INT 21/AX=FD12h,INT 78"UltraMID"
  5541. --------s-7E00FF-----------------------------
  5542. INT 7E - SBOS v3.82 - SET INTERRUPT FOR ???
  5543.     AX = 00FFh
  5544.     BL = new interrupt vector to hook
  5545. Return: BX = 03CDh if supported
  5546. Desc:    unhooks the current interrupt handler for ???, and reconnects it to the
  5547.       specified new interrupt number
  5548. SeeAlso: AX=00F7h,AX=00F9h,AX=00FEh
  5549. --------s-7E01-------------------------------
  5550. INT 7E - MaxSBOS v0.21 - ???
  5551.     AH = 01h
  5552.     ???
  5553. Return: ???
  5554. Program: MaxSBOS is a SoundBlaster FM synthesis emulator for the Gravis
  5555.       UltraSound MAX
  5556. Range:    INT 78-INT 7F, selected by commandline parameter
  5557. Note:    the installation check is the same as for 'regular' SBOS (see AX=00FEh)
  5558.       although the API in v0.21 does not provide the functions present in
  5559.       the older SBOS
  5560. SeeAlso: AX=00FEh,AH=02h,AH=03h
  5561. --------s-7E02-------------------------------
  5562. INT 7E - MaxSBOS v0.21 - ???
  5563.     AH = 02h
  5564. Return: AX = FFFFh
  5565. SeeAlso: AX=00FEh,AH=01h,AH=03h
  5566. --------s-7E03-------------------------------
  5567. INT 7E - MaxSBOS v0.21 - NOP
  5568.     AH = 03h
  5569. Return: nothing
  5570. SeeAlso: AX=00FEh,AH=01h,AH=02h
  5571. --------m-7E5857BL57-------------------------
  5572. INT 7E - XLOAD - INSTALLATION CHECK
  5573.     AX = 5857h
  5574.     BL = 57h
  5575. Return: AX = 0000h if installed
  5576. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  5577. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  5578. --------m-7E5857BL5A-------------------------
  5579. INT 7E - XLOAD - GET ???
  5580.     AX = 5857h
  5581.     BL = 5Ah
  5582. Return: AX = 0000h
  5583.     CX = ???
  5584.     DS:SI -> ???
  5585. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  5586. --------m-7E5857BL5B-------------------------
  5587. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  5588.     AX = 5857h
  5589.     BL = 5Bh
  5590. Return: AX = 0000h
  5591.     CX = segment of XLOAD TSR
  5592.     DX = size of memory block in which XLOAD TSR is located
  5593. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Ah
  5594. --------V-7F---------------------------------
  5595. INT 7F - Halo88 - API
  5596.     BX = function number (see #3115)
  5597.     additional parameters on stack
  5598. Return: ???
  5599. Program: Halo88 is a suite of graphics routines
  5600. Note:    according to Stuart Kemp, the code appears to make no provisions for
  5601.        chaining
  5602.  
  5603. (Table 3115)
  5604. Values for Halo88 API function:
  5605.  64h    arc
  5606.  65h    bar
  5607.  66h    box
  5608.  67h    circle
  5609.  68h    clr
  5610.  69h    default hatch style
  5611.  6Ah    default line style
  5612.  6Bh    delhcur
  5613.  6Ch    delln / deltcur
  5614.  6Dh    ellipse
  5615.  6Eh    fill
  5616.  6Fh    flood
  5617.  70h    flood2
  5618.  71h    init graphics
  5619.  72h    init hcur
  5620.  73h    init marker
  5621.  74h    init tcur
  5622.  75h    inqarc
  5623.  76h    inqbknd
  5624.  77h    inqclr
  5625.  78h    inqerr
  5626.  79h    inqgcur
  5627.  7Ah    inqhcur
  5628.  7Bh    inqmarker
  5629.  7Dh    inqtcur
  5630.  7Eh    inqtext
  5631.  7Fh    lnabs
  5632.  80h    lnrel
  5633.  81h    markerabs
  5634.  82h    markerrel
  5635.  83h    moveabs
  5636.  84h    movehcurabs
  5637.  85h    movehcurrel
  5638.  86h    moverel
  5639.  87h    movetcurabs
  5640.  88h    movetcurrel
  5641.  89h    movefrom
  5642.  8Ah    moveto
  5643.  8Bh    pie
  5644.  8Ch    polylnabs
  5645.  8Dh    polylnrel
  5646.  8Eh    ptabs
  5647.  8Fh    ptrel
  5648.  91h    setasp
  5649.  92h    set color
  5650.  93h    set font
  5651.  94h    set hatch    style
  5652.  95h    set line style
  5653.  97h    settext
  5654.  98h    set text color
  5655.  99h    btext
  5656.  9Ah    setseg
  5657.  9Bh    display
  5658.  9Ch    setscreen
  5659.  9Eh    close graphics
  5660.  9Fh    ftinit
  5661.  A0h    ftlocate
  5662.  A1h    ftext
  5663.  A5h    set viewport
  5664.  A6h    set window
  5665.  A7h    set world
  5666.  AAh    ftcolor
  5667.  ACh    initlp
  5668.  ADh    inqasp
  5669.  AEh    inqdev
  5670.  AFh    inqdisplay
  5671.  B0h    inqft
  5672.  B1h    inqftcolor
  5673.  B2h    inqinterlace
  5674.  B3h    inqlpa
  5675.  B4h    inqlpg
  5676.  B5h    inqmode
  5677.  B6h    inqscreen
  5678.  B7h    inqversion
  5679.  B8h    roam
  5680.  B9h    scroll
  5681.  BAh    setieee
  5682.  BBh    set interlace
  5683.  BCh    shift
  5684.  BDh    start graphics
  5685.  BEh    vpan
  5686.  CBh    gwrite
  5687.  CCh    gread
  5688.  CDh    setxor
  5689.  CEh    rbox
  5690.  CFh    rcir
  5691.  D0h    rlnabs
  5692.  D1h    rlnrel
  5693.  D2h    delbox
  5694.  D3h    delcir
  5695.  D5h    setseg2
  5696.  DCh    worldoff
  5697.  DDh    mapwtod
  5698.  DEh    mapdtow
  5699.  DFh    mapwton
  5700.  E0h    mapntow
  5701.  E1h    mapdton
  5702.  E2h    mapntod
  5703.  E3h    inqworld
  5704.  E4h    inqviewport
  5705.  E5h    set line width
  5706.  E6h    lnjoint
  5707.  E7h    set locator
  5708.  E8h    read locator
  5709.  E9h    setdev
  5710.  EBh    setstext
  5711.  ECh    setstclr
  5712.  EDh    setstang
  5713.  EEh    stext
  5714.  EFh    inqstext
  5715.  F0h    setdegree
  5716.  F1h    inqstsize
  5717.  F2h    polyfabs
  5718.  F3h    polyfrel
  5719.  F4h    inqdrange
  5720.  F5h    inqstang
  5721.  F6h    orglocator
  5722.  F7h    inqlocator
  5723.  F8h    inqarea
  5724.  F9h    setipal
  5725.  FAh    setborder
  5726.  FBh    inqcrange
  5727.  FEh    setclip
  5728.  FFh    fcir
  5729. 100h    setcrange
  5730. 101h    setdrange
  5731. 102h    setlattr
  5732. 103h    polycabs
  5733. 104h    polycrel
  5734. 108h    memcom
  5735. 109h    memexp
  5736. 10Ah    memmov
  5737. 10Eh    movefx
  5738. 10Fh    movetx
  5739. 110h    inqrgb
  5740. 111h    save image
  5741. 112h    restore image
  5742. 113h    setapal
  5743. 114h    setxpal
  5744. 118h    inqtsize
  5745. 12Eh    gprint
  5746. 130h    setprn
  5747. 131h    setpattr
  5748. 133h    setbattr
  5749. 135h    pexpand
  5750. 136h    ptnorm
  5751. 137h    pfnorm
  5752. 13Bh    inqprn
  5753. 13Ch    lopen
  5754. 13Dh    lclose
  5755. 13Eh    lappend
  5756. 13Fh    lrecord
  5757. 140h    lswitch
  5758. 142h    inqfun
  5759. 15Dh    lsetup
  5760. 15Eh    lrest
  5761. 15Fh    lsave
  5762. --------N-7F---------------------------------
  5763. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  5764.     AL = request ID
  5765.         01h "Request"/"RequestDirect"
  5766.         ES:BX -> pRq
  5767.         DX ignored
  5768.         04h "Wait"
  5769.         ES:BX -> ppMsgRet
  5770.         DX = exchange
  5771.         05h "AllocExch"
  5772.         ES:BX -> pExchRet
  5773.         06h "DeAllocExch"
  5774.         DX = exchange
  5775.         07h "Check"
  5776.         ES:BX -> ppMsgRet
  5777.         DX = exchange
  5778.     CX = 4354h ('CT')
  5779. Return: AX = status
  5780.         0000h successful
  5781. --------S-7F---------------------------------
  5782. INT 7F - Telebit ACS SERIAL I/O
  5783.     ES:SI-> parameter block (see #3116)
  5784. Return: CF set on error
  5785.     CF clear on success
  5786. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  5787.       handler; this serves as the installation check
  5788. Index:    installation check;Telebit ACS Serial I/O
  5789.  
  5790. Format of Telebit ACS parameter block:
  5791. Offset    Size    Description    (Table 3116)
  5792.  00h    BYTE    command (see #3117)
  5793.  01h    BYTE    gateway number
  5794.  02h    BYTE    reserved
  5795.  03h    BYTE    port
  5796.  04h 17 BYTEs    auxiliary buffer
  5797.  15h    BYTE    session
  5798.  16h    WORD    count of bytes passed to API
  5799.  18h    DWORD    buffer pointer passed to/from API
  5800.  1Ch    WORD    count of bytes passed from API
  5801.  1Eh    BYTE    return code (see #3118)
  5802.  
  5803. (Table 3117)
  5804. Values for Telebit ACS command:
  5805.  3Ch    status
  5806.  3Dh    connect
  5807.  3Eh    disconnect
  5808.  3Fh    read
  5809.  40h    data/command write
  5810.  41h    clear receive buffer
  5811.  42h    get configuration
  5812.  43h    get receiver status
  5813.  44h    raw write
  5814.  45h    search servers
  5815.  46h    set transmit buffer size
  5816.  
  5817. (Table 3118)
  5818. Values for Telebit ACS return code:
  5819.  00h    success
  5820.  01h    invalid session
  5821.  05h    servername invalid
  5822.  06h    NetWare fileserver bindery is locked
  5823.  07h    communication server not active
  5824.  08h    general failure in NetWare fileserver
  5825.  09h    not logged into a fileserver
  5826.  10h    connection table full
  5827.  11h    no response from communication server
  5828.  12h    connection attempt terminated abnormally
  5829.  13h    connection refused - no sessions available
  5830.  14h    gateway number/port already in use
  5831.  15h    invalid connection response
  5832.  16h    port invalid
  5833.  17h    incorrect version in server response
  5834.  18h    gateway number/port combination not configured
  5835.  19h    initialization has not been completed
  5836.  20h    no more sockets are available
  5837.  21h    no active poolname
  5838.  23h    FATAL internal interface error
  5839.  24h    registration of host workstation failed - name is already in use
  5840.  25h    registration of host workstation failed - workstation name table full
  5841.  26h    registration of host workstation failed - only one session may be
  5842.       registered for dial-in
  5843.  FFh    Telebit ACS API is busy - retry later
  5844. --------N-7F---------------------------------
  5845. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  5846. Notes:    the installation check consists of checking for the signature "Lynn"
  5847.       in the four bytes preceding the interrupt handler; if present, the
  5848.       current program is running as a DOS task on a non-dedicated NetWare
  5849.       2.x file server.
  5850.     Before placing the server into "console" mode, it is recommended that
  5851.       NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h.
  5852. SeeAlso: INT 21/AH=DEh/DL=04h
  5853. Index:    installation check;non-dedicated NetWare server
  5854. --------S-7F---------------------------------
  5855. INT 7F U - YTERM - ???
  5856. SeeAlso: INT 7E"YTERM"
  5857. --------E-7F---------------------------------
  5858. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  5859. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5860.       early versions of the DOS extender
  5861.     the newest versions of GO32 dynamically allocate the vectors used
  5862.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5863. SeeAlso: INT 0F,INT 7E"GO32"
  5864. ----------7F---------------------------------
  5865. INT 7F - Canon IXHND2 Scanner Interface
  5866. --------U-7F---------------------------------
  5867. INT 7F - SBS WinRun 1.00 - TRANSMITTER ENTRY POINT
  5868.     DS:SI -> WinRun control block (WCB) (see #3119)
  5869. Return: WinRun receiver status returned in WCB
  5870. Program: WinRun is a DOS/Windows utility written by Sven B. Schreiber to start
  5871.       Windows applications from a virtual DOS machine under Windows
  5872. Note:    The WinRun transmitter (WINRUN-T.COM) and receiver (WINRUN-R.EXE) need
  5873.       to be up and running
  5874.  
  5875. Format of the WinRun control block (WCB):
  5876. Offset    Size    Description    (Table 3119)
  5877.  00h    DWORD    pointer to ASCIZ command string
  5878.  04h    WORD    (ret) WinRun receiver status
  5879.         0000h-001Fh WinExec() error
  5880.         0020h-FFFEh WinExec() instance handle
  5881.         FFFFh        Windows not running or WinRun receiver not
  5882.                   installed
  5883. --------N-7F---------------------------------
  5884. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  5885. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  5886.       MW386 multitasking system is present (i.e. signature "NXNX")
  5887.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  5888.       load time.  To determine the actual vector used, open the device
  5889.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  5890.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  5891.       be the actual interrupt number being used; the other interrupts may
  5892.       be found with INT 7F/AH=09h/CL=03h
  5893. --------N-7F---------------------------------
  5894. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  5895. Note:    a program may determine that it is running on an ANSK Slave by checking
  5896.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  5897.       address is RAM, and should not be written.  However, the above check
  5898.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  5899.       device driver
  5900. --------N-7F00-------------------------------
  5901. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  5902.     AH = 00h
  5903.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  5904. Return: AL = status (see #3120)
  5905.     AH = semaphore owner if status=02h
  5906. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  5907.  
  5908. (Table 3120)
  5909. Values for Alloy function status:
  5910.  00h    successful
  5911.  01h    invalid function
  5912.  02h    semaphore already locked
  5913.  03h    unable to lock/unlock semaphore
  5914.  04h    semaphore space exhausted
  5915.  05h    host/target PC did not respond (NTNX)
  5916. --------T-7F00-------------------------------
  5917. INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE
  5918.     AH = 00h
  5919.     BX = resource identifier
  5920.     AL = wait flag
  5921. Return: AL = status
  5922.         00h successful
  5923.         01h resource not available
  5924.         02h user error
  5925. Notes:    the installation check consists of ensuring that the interrupt vector
  5926.       is not pointing at segment 0000h, then checking whether the byte
  5927.       at offset 0000h in the interrupt handler's segment is E9h
  5928.     function will not return until the resource is available if AL is
  5929.       nonzero on entry
  5930.     a maximum of 100 resources may be enqueued at once
  5931. SeeAlso: AH=01h"MultiLink"
  5932. --------N-7F00-------------------------------
  5933. INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION
  5934.     AH = 00h
  5935.     ES:SI -> buffer for "USERS" text string
  5936. Return: AX = 4250h ('BP') if installed
  5937.     BX = 5120h ('Q ') if installed
  5938.     DX = version number (DH = major, DL = minor)
  5939.     CX = length of returned string
  5940. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  5941.       John Wiseman which allows a PC to act as a node in an AX.25 network
  5942. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  5943. --------N-7F01-------------------------------
  5944. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  5945.     AH = 01h
  5946.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  5947. Return: AL = status (see #3120)
  5948.     AH = semaphore owner if status=02h
  5949. SeeAlso: AH=00h,AH=02h,AH=41h
  5950. --------T-7F01-------------------------------
  5951. INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE
  5952.     AH = 01h
  5953.     BX = resource identifier
  5954. Return: AL = status
  5955.         00h successful
  5956.         02h user error
  5957. Note:    the indicated resource may be dequeued even if it was enqueued by
  5958.       another task
  5959. SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink"
  5960. --------V-7F01-------------------------------
  5961. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  5962.     AH = 01h
  5963. Return: BX = 1234h if installed
  5964.         DX:AX -> array of FAR entry points
  5965.         CH = driver major version
  5966.         CL = driver minor version
  5967. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  5968. SeeAlso: AX=1234h,AX=4321h
  5969. --------N-7F01-------------------------------
  5970. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  5971.     AH = 01h
  5972.     AL = stream number (01h-40h)
  5973.     CL = new application flags
  5974.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  5975.     DL = new application mask
  5976. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  5977.       John Wiseman which allows a PC to act as a node in an AX.25 network
  5978. Range:    INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+
  5979.       (earlier versions were hard-wired for INT 7F)
  5980. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  5981. --------I-7F0104BX0000-----------------------
  5982. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  5983.     AX = 0104h (HLLAPI gate ID)
  5984.     BX = 0000h
  5985.     DS:SI -> parameter control block (see #3121)
  5986. Return: parameter control block updated
  5987. Note:    the installation check for the Novell HLLAPI TSR is the signature
  5988.       string "CXI" (for the company Novell bought) immediately prior to
  5989.       the interrupt handler
  5990. SeeAlso: AX=0105h,AX=ABCDh
  5991.  
  5992. Format of HLLAPI parameter control block:
  5993. Offset    Size    Description    (Table 3121)
  5994.  00h  3 BYTEs    signature = 'PCB'
  5995.  03h    BYTE    function number (see #3122,#3123)
  5996.  04h    WORD    segment of control string
  5997.  06h    WORD    offset of control string
  5998.  08h    WORD    length of control string, unless explicit end-of-str char set
  5999.  0Ah    BYTE    unused (IBM)
  6000.         ControlString[0] (Rabbit)
  6001.  0Bh    WORD    return code (see #3125)
  6002.  0Dh    WORD    maximum length of control string (IBM)
  6003.         unused (Rabbit)
  6004.  
  6005. (Table 3122)
  6006. Values for HLLAPI function number:
  6007.  00h    OEM function (Query system for Attachmate implementation)
  6008.  01h    Connect presentation space
  6009.  02h    Disconnect presentation space
  6010.  03h    Send string of keystrokes as if typed from keyboard
  6011.  04h    Wait ~60s, returns status of presentation space
  6012.  05h    Copy current presentation space into a user-defined buffer
  6013.  06h    Search presentation space for first occurrence of a specified string
  6014.  07h    Query cursor location in current presentation space
  6015.  08h    Copy part or all of current presentation space into user buffer
  6016.  09h    Set session parameters; parameters vary by vendor (see #3124)
  6017.  0Ah    Get info on sessions currently connected
  6018.  0Bh    Lock current presentation space
  6019.  0Ch    Unlock previously locked presentation space
  6020.  0Dh    Return copy of operator info area (OIA) of current presentation space
  6021.  0Eh    get attribute byte for given position in the current presentation space
  6022.  0Fh    copy string of characters to the current presentation space
  6023.  10h    workstation control functions
  6024.  11h    storage manager functions, intended primarily for BASIC applications
  6025.     (not implemented by Rabbit)
  6026.  12h    set delay period in half-second intervals
  6027.  14h    get info on level of workstation support used
  6028.  15h    reset session parameters to default values
  6029.  16h    get detailed info on the current session
  6030.  17h    start host notification to application on presentation sp or OIA update
  6031.  18h    check host update when host notification enabled
  6032.  19h    stop host notification
  6033.  1Eh    search field within current presentation space for string
  6034.  1Fh    get first positionof a selected field in the current presentation space
  6035.  20h    get length of specified field
  6036.  21h    copy string into a specified field
  6037.  22h    copy specified field into a user-defined buffer
  6038.  23h    create alternate presentation space (IBM only), don't use with BASIC
  6039.  24h    switch to alternate presentation space (IBM only), not with BASIC
  6040.  25h    display cursor in specified area (IBM only), don't use with BASIC
  6041.  26h    display alternate presentation space (IBM only), don't use with BASIC
  6042.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  6043.  28h    set cursor
  6044.  29h    start Close Intercept
  6045.  2Ah    query Close Intercept
  6046.  2Bh    stop Close Intercept
  6047.  32h    start intercepting keystrokes to allow filtering
  6048.  33h    get keystrokes after turning on interception
  6049.  34h    notify operator when keystroke rejected by filter subroutine
  6050.  35h    stop intercepting keystrokes
  6051.  5Ah    send file
  6052.  5Bh    receive file
  6053.  5Ch    run a program (not implemented by Rabbit)
  6054.  5Dh    execute DOS command (not implemented by Rabbit)
  6055.  63h    change presentation space position to PC display row/col or vice versa
  6056.  65h    connect to Window Services
  6057.  66h    disconnect from Window Services
  6058.  67h    set/query window coordinates
  6059.  68h    set/query window status
  6060.  69h    change presentation space name
  6061.  78h    connect Structured Fields
  6062.  79h    disconnect Structured Fields
  6063.  7Ah    query size of communications buffer
  6064.  7Bh    allocate communications buffer
  6065.  7Ch    free communications buffer
  6066.  7Dh    get request completion state
  6067.  7Eh    read Structured Fields
  6068.  7Fh    write Structured Fields
  6069.  FFh    Get info on DCA implementation
  6070.  
  6071. (Table 3123)
  6072. Values for LLAPI function number:
  6073.  80h    initialize LLAPI (internal call)
  6074.  83h    set Session ID (one-character ID)
  6075.  84h    read Session ID (one-character ID)
  6076.  85h    lock 327x keyboard
  6077.  86h    unlock 327x keyboard
  6078.  87h    wait for Clear to Send
  6079.  88h    type ASCII character
  6080.  89h    type 327x key
  6081.  8Ah    read keyboard lock state
  6082.  8Fh    force screen update
  6083.  90h    view session
  6084.  91h    relinquish (suspend foreground until background becomes idle)
  6085.  92h    poke screen character
  6086.  93h    poke translated character
  6087.  94h    peek screen character
  6088.  95h    peek translated character
  6089.  96h    set cursor position
  6090.  97h    send scan code (Rabbit only)
  6091.  98h    synchronize (returns after keystroke queue empty)
  6092.  99h    type PC key (Rabbit only)
  6093.  
  6094. (Table 3124)
  6095. Values for HLLAPI Function 09h Session Parameters:
  6096.  ASCII        ??? (Rabbit only)
  6097.  ATTRIB        return attributes in hex
  6098.  NOATTRIB    return attributes as blanks
  6099.  CONPHYS    make physical connection
  6100.  CONLOG        only make logical connection
  6101.  EAB        copy extended attribute bytes along with data
  6102.  NOEAB        copy data only
  6103.  ESC=n        set escape character to "n" (default '@')
  6104.  EOT=n        set end of string character (default 00h)
  6105.  FPAUSE        full-duration pause
  6106.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  6107.  FTWAIT        wait for file transfer to complete (Rabbit only)
  6108.  IPAUSE        interruptable pause
  6109.  RABESC        ??? (Rabbit only)
  6110.  NORABESC    ??? (Rabbit only)
  6111.  SCANCODE    ??? (Rabbit only)
  6112.  STRLEN        use explicit string lengths
  6113.  STREOT        use terminated strings
  6114.  SRCHALL    search entire presentation space
  6115.  SRCHFROM    search from specified offset
  6116.  SRCHFRWD    search forward from position 1
  6117.  SRCHBKWD    search backward from last position in presentation space
  6118.  TIMEOUT=n    ??? (Rabbit only)
  6119.  TWAIT        wait specified time for keyboard ready
  6120.  LWAIT        wait until keyboard ready
  6121.  NWAIT        no wait
  6122.  TRON        enable tracing
  6123.  TROFF        disable tracing
  6124.  AUTORESET    send reset before sending keys with function 03h
  6125.  NORESET    don't send reset
  6126.  QUIET        don't display messages sent with INT 21/AH=09h
  6127.  NOQUIET    allow messages to be displayed
  6128.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  6129.  XLATE        translate extended attribute bytes
  6130.  NOXLATE    don't translate
  6131.  NEWRET        use HLLAPI v3.0 return code conventions
  6132.  OLDRET        use HLLAPI v2.0 return code conventions
  6133.  
  6134. (Table 3125)
  6135. Values for Windows HLLAPI return code:
  6136.  00h    successful
  6137.  01h    Presentation Space not connected/requested size unavailable
  6138.  02h    invalid function or parameter error/invalid block ID
  6139.  03h    file transfer complete
  6140.  04h    file transfer complete (segmented)/Presentation Space busy
  6141.  05h    inhibited or keyboard locked
  6142.  06h    data truncated
  6143.  07h    invalid Presentation Space position
  6144.  08h    operation not available
  6145.  09h    system error
  6146.  0Ah    blocking error
  6147.  0Bh    resource not available
  6148.  0Ch    session stopped
  6149.  14h    undefined key combination
  6150.  15h    OIA updated
  6151.  16h    Presentation Space updated
  6152.  17h    both Presentation Space and OIA updated
  6153.  18h    no such field
  6154.  19h    no keystrokes available
  6155.  1Ah    Presentation Space or Operator Information Area changed
  6156.  1Bh    file transfer aborted
  6157.  1Ch    zero-length field
  6158.  1Eh    cursor type invalid
  6159.  1Fh    keystroke overflow
  6160.  20h    another application is already connected
  6161.  22h    message sent to host cancelled
  6162.  23h    transmission from host cancelled
  6163.  24h    lost contact with host
  6164.  25h    function successful
  6165.  26h    function incomplete
  6166.  27h    a DDM session is already connected
  6167.  28h    disconnected, but asynchronous requests still pending
  6168.  29h    buffer already in use
  6169.  2Ah    no matching request found
  6170. 12Dh    invalid function number
  6171. 12Eh    file not found
  6172. 131h    access denied
  6173. 134h    out of memory
  6174. 136h    environment invalid
  6175. 137h    format invalid
  6176. 270Eh (9998) invalid Presentation Space ID
  6177. 270Fh (9999) invalid row or column code
  6178. ---Windows HLLAPI extensions---
  6179. F000h    asynchronous call already in progress
  6180. F001h    invalid asynchronous task ID
  6181. F002h    blocking call cancelled
  6182. F003h    underlying subsystem not started
  6183. F004h    unsupported application version
  6184. --------V-7F0105-----------------------------
  6185. INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE)
  6186.     AX = 0105h
  6187. Return: CF set on error
  6188.     CF clear if successful
  6189.         CX:DX -> array of FAR pointers to entry points (see #3126)
  6190. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  6191.       and then performing a FAR call via the appropriate vector of the
  6192.       entry point array, placing the FAR address of the function's
  6193.       parameter block on the top of the stack
  6194. SeeAlso: AX=0104h,AX=0106h,AX=ABCDh
  6195.  
  6196. (Table 3126)
  6197. Values for HDILOAD function number: (do FAR call via entry_points+4*function)
  6198.  08h    HOPEN    Open Adapter (see #3158)
  6199.  09h    HSMX    Set Mix (see #3187)
  6200.  10h    HINT    Interrupt (see #3154)
  6201.  13h    HLDPAL    Load Palette (see #3155)
  6202.  15h    HBBW    BitBLT Write Image Data (see #3141)
  6203.  17h    HBBR    BitBLT Read Image Data (see #3142)
  6204.  18h    HBBCHN    Chained Data Go (see #3140)
  6205.  19h    HBBC    BitBLT Copy Data (see #3139)
  6206.  1Dh    HQMODE    Get Current Mode (see #3164)
  6207.  20h    HRECT    Fill Rectangle (see #3166)
  6208.  22h    HCLOSE    Close Adapter and place in quiescent state (see #3147)
  6209.  30h    HINIT    Initialize State (see #3153)
  6210.  31h    HSYNC    Synchronize Adapter (see #3192)
  6211.  39h    HSPAL    Save Palette (see #3189)
  6212.  3Ah    HRPAL    Restore Palette (see #3169)
  6213.  ???    HSGQ    Set Graphics Quality (see #3178)
  6214.  ???    HSCOORD    Set Coordinate Type (see #3175)
  6215.  ???    HESC    Escape, Terminate Processing (see #3152)
  6216.  ???    HSBCOL    Set Background Color (see #3170)
  6217.  ???    HSBP    Set Bit Plane Controls (see #3171)
  6218.  ???    HSCMP    Set Color Comparison Register (see #3173)
  6219.  ???    HSCOL    Set Color (see #3174)
  6220.  ???    HSHS    Set Scissors (clipping rectangle) (see #3179)
  6221.  ???    HXLATE    Assign Text Color (see #3193)
  6222.  ???    HQMODES    Get Adapter Modes (see #3165)
  6223.  ???    HQDPS    Get Drawing Process State Size (see #3163)
  6224.  ???    HQDFPAL    Get Default Palette (see #3162)
  6225.  ???    HQCOORD    Get Coordinate Type (see #3160)
  6226.  ???    HQCP    Get Current Position (see #3161)
  6227.  ???    HSMODE    Change Mode (see #3185)
  6228.  ???    HLINE    Draw Line at Given Position (see #3156)
  6229.  ???    HCLINE    Draw Line at Current Position (see #3146)
  6230.  ???    HRLINE    Draw Line Relative from Given Position (see #3167)
  6231.  ???    HCRLINE    Draw Line Relative at Current Position (see #3149)
  6232.  ???    HSLT    Set Line Type (see #3182)
  6233.  ???    HSLW    Set Line Width (see #3184)
  6234.  ???    HSLPC    Save Line Pattern Count (see #3181)
  6235.  ???    HRLPC    Restore Line Pattern Count (see #3168)
  6236.  ???    HCBBW    BitBLT Write Image Data at Current Position (see #3143)
  6237.  ???    HBAR    Begin Area (see #3138)
  6238.  ???    HEAR    End Area (see #3150)
  6239.  ???    HSPATT    Set Pattern (see #3190)
  6240.  ???    HSPATTO    Set Pattern Reference Point (see #3191)
  6241.  ???    HEGS    Erase Graphics Screen (see #3151)
  6242.  ???    HSCP    Set Current Position (see #3176)
  6243.  ???    HMRK    Set Marker (see #3157)
  6244.  ???    HCMRK    Set Marker at Current Position (see #3148)
  6245.  ???    HSMARK    Set Marker Shape (see #3186)
  6246.  ???    HSCS    Set Character Set (see #3177)
  6247.  ???    HCHST    Write Character String at Given Position (see #3145)
  6248.  ???    HCCHST    Write Character String at Current Position (see #3144)
  6249.  ???    HSCELL    Set Cell Size for Alphanumeric Text (see #3172)
  6250.  ???    ABLOCKMFI Write Character/Attribute Block MFI (see #3129)
  6251.  ???    ABLOCKCGA Write Character Block CGA (see #3127)
  6252.  ???    AERASE    Erase Rectangle (see #3132)
  6253.  ???    ASCROLL Scroll Rectangle (see #3133)
  6254.  ???    ACURSOR    Set Alphanumerics Cursor Position (see #3131)
  6255.  ???    ASCUR    Set Alphanumeric Cursor Shape (see #3134)
  6256.  ???    ASFONT    Set Font (see #3135)
  6257.  ???    AXLATE    Assign Alphanumeric Color (see #3137)
  6258.  
  6259. Format of ABLOCKCGA parameter block:
  6260. Offset    Size    Description    (Table 3127)
  6261.  00h    WORD    000Ah (length of following data)
  6262.  02h    WORD    top-left coordinate of character block
  6263.  04h    WORD    width of block
  6264.  06h    DWORD    -> block of WORDs describing characters (see #3128)
  6265.  0Ah    BYTE    length of block in characters
  6266.  0Bh    BYTE    highlight attribute
  6267.         bit 4: transparent background
  6268.         bit 5: overstrike
  6269.         bit 6: reverse video
  6270.         bit 7: underscore
  6271. SeeAlso: #3129
  6272.  
  6273. Bitfields for one character in ABLOCKCGA character block:
  6274. Bit(s)    Description    (Table 3128)
  6275.  3-0    foreground attribute
  6276.  7-4    background attribute
  6277.  15-8    character code
  6278.  
  6279. Format of ABLOCKMFI parameter block:
  6280. Offset    Size    Description    (Table 3129)
  6281.  00h    WORD    0009h (length of following data)
  6282.  02h    WORD    top-left coordinate of character block
  6283.  04h    WORD    width of block
  6284.  06h    DWORD    -> block of DWORDs describing characters (see #3130)
  6285.  0Ah    BYTE    length of block in characters
  6286. SeeAlso: #3127
  6287.  
  6288. Bitfields for one character in ABLOCKMFI character block:
  6289. Bit(s)    Description    (Table 3130)
  6290.  7-0    reserved
  6291.  9-8    low two bits of font number
  6292.  12    transparent background
  6293.  13    overstrike
  6294.  14    reverse video
  6295.  15    underscore
  6296.  19-16    foreground color attribute
  6297.  23-20    background color attribute
  6298.  31-24    character code
  6299.  
  6300. Format of ACURSOR parameter block:
  6301. Offset    Size    Description    (Table 3131)
  6302.  00h    WORD    0002h (length of following data)
  6303.  02h    BYTE    column (0-based)
  6304.  03h    BYTE    row (0-based)
  6305. SeeAlso: #3134
  6306.  
  6307. Format of AERASE parameter block:
  6308. Offset    Size    Description    (Table 3132)
  6309.  00h    WORD    0005h (length of following data)
  6310.  02h    BYTE    left-most column (0-based)
  6311.  03h    BYTE    top-most row (0-based)
  6312.  04h    BYTE    rectangle's width in character cells
  6313.  05h    BYTE    rectangle's height in character cells
  6314.  06h    BYTE    background color (bits 7-4)
  6315. SeeAlso: #3133
  6316.  
  6317. Format of ASCROLL parameter block:
  6318. Offset    Size    Description    (Table 3133)
  6319.  00h    WORD    0006h (length of following data)
  6320.  02h    BYTE    left-most column (0-based) of source
  6321.  03h    BYTE    top-most row (0-based) of source
  6322.  04h    BYTE    rectangle's width in character cells
  6323.  05h    BYTE    rectangle's height in character cells
  6324.  06h    BYTE    left-most column (0-based) of destination
  6325.  07h    BYTE    top-most row (0-based) of destination
  6326. SeeAlso: #3132
  6327.  
  6328. Format of ASCUR parameter block:
  6329. Offset    Size    Description    (Table 3134)
  6330.  00h    WORD    0003h (length of following data)
  6331.  02h    BYTE    cursor start line (00h = top of cell, FFh = keep current shape)
  6332.  03h    BYTE    cursor stop line
  6333.  04h    BYTE    cursor attribute
  6334.         00h normal
  6335.         01h hidden
  6336.         02h left-arrow (requires start = 2 and stop = bottom of cell)
  6337.         03h right-arrow (requires start = 2 and stop = bottom of cell)
  6338. Notes:    no cursor is shown if the start line is greater than the stop line
  6339.     the alphanumeric cursor is hidden after each mode change
  6340. SeeAlso: #3131,INT 10/AH=01h
  6341.  
  6342. Format of ASFONT parameter block:
  6343. Offset    Size    Description    (Table 3135)
  6344.  00h    WORD    0005h (length of following data)
  6345.  02h    BYTE    font number (0-3)
  6346.  03h    DWORD    -> character set definition block (see #3136)
  6347.  
  6348. Format of 8514/A character set definition block:
  6349. Offset    Size    Description    (Table 3136)
  6350.  00h    BYTE    reserved
  6351.  01h    BYTE    type of character set
  6352.         00h bitmapped, 01h&02h reserved, 03h short-stroke font
  6353.  02h    BYTE    reserved
  6354.  03h    DWORD    reserved
  6355.  07h    BYTE    cell width in pixels
  6356.  08h    BYTE    cell height in pixels
  6357.  09h    BYTE    reserved
  6358.  0Ah    WORD    cell size in bytes
  6359.  0Ch    WORD    flags
  6360.         bit 15: reserved (0)
  6361.         bit 14: color bitmap
  6362.         bit 13: proportional spacing
  6363.  0Eh    DWORD    -> index table
  6364.  12h    DWORD    -> character width table
  6365.  16h    BYTE    initial code point
  6366.  17h    BYTE    final code point
  6367.  18h    DWORD    -> character definition table
  6368.  1Ch    WORD    reserved
  6369.  1Eh    DWORD    -> second character definition table
  6370.  22h    WORD    reserved
  6371.  24h    DWORD    -> third character definition table
  6372.  
  6373. Format of AXLATE parameter block:
  6374. Offset    Size    Description    (Table 3137)
  6375.  00h    WORD    0080h (length of following data)
  6376.  02h 64 BYTEs    character foreground translation table
  6377.  42h 64 BYTEs    character background translation table
  6378.  
  6379. Format of HBAR parameter block:
  6380. Offset    Size    Description    (Table 3138)
  6381.  00h    WORD    0000h (no data following)
  6382. SeeAlso: #3150
  6383.  
  6384. Format of HBBC parameter block:
  6385. Offset    Size    Description    (Table 3139)
  6386.  00h    WORD    0010h (length of following data)
  6387.  02h    WORD    data format
  6388.         0000h across-the-plane copy (color expansion)
  6389.         0008h through-the-plane copy
  6390.  04h    WORD    data rectangle's width
  6391.  06h    WORD    data rectangle's height
  6392.  08h    BYTE    source bit plane number (across-the-plane copies only)
  6393.  09h    BYTE    reserved
  6394.  0Ah  2 WORDs    X,Y coordinates of source's upper-left corner in display memory
  6395.  0Eh  2 WORDs    X,Y coordinates of destination's upper-left corner in
  6396.           display memory
  6397. Note:    copies data from one location in video memory to another
  6398. SeeAlso: #3140
  6399.  
  6400. Format of HBBCHN parameter block:
  6401. Offset    Size    Description    (Table 3140)
  6402.  00h    WORD    0006h (length of following data)
  6403.  02h    DWORD    -> data buffer in system memory
  6404.  06h    WORD    number of bytes to transfer
  6405. Note:    this function performs the actual data transfer for a bitBLT set up
  6406.       with HBBR, HBBW, or HCBBW
  6407. SeeAlso: #3139,#3141,#3142,#3143
  6408.  
  6409. Format of HBBR parameter block:
  6410. Offset    Size    Description    (Table 3141)
  6411.  00h    WORD    000Ch or 0014h (length of following data)
  6412.  02h    WORD    data format
  6413.         0000h across-the-plane copy (color expansion)
  6414.         0008h through-the-plane copy
  6415.  04h    WORD    data rectangle's width
  6416.  06h    WORD    data rectangle's height
  6417.  08h    BYTE    source bit plane number
  6418.  09h    BYTE    reserved
  6419.  0Ah  2 WORDs    X,Y coordinates of destination's upper-left corner in
  6420.           display memory
  6421. ---optional---
  6422.  0Eh    WORD    sub-rectangle left margin in pixels
  6423.  10h    WORD    sub-rectangle top margin in pixels
  6424.  12h    WORD    sub-rectangle width
  6425.  14h    WORD    sub-rectangle height
  6426. SeeAlso: #3140,#3141,#3143
  6427.  
  6428. Format of HBBW parameter block:
  6429. Offset    Size    Description    (Table 3142)
  6430.  00h    WORD    000Ah or 0012h (length of following data)
  6431.  02h    WORD    data format
  6432.         0000h across-the-plane copy (color expansion)
  6433.         0008h through-the-plane copy
  6434.  04h    WORD    data rectangle's width
  6435.  06h    WORD    data rectangle's height
  6436.  08h  2 WORDs    X,Y coordinates of destination in display memory
  6437. ---optional---
  6438.  0Ch    WORD    sub-rectangle left margin in pixels
  6439.  0Eh    WORD    sub-rectangle top margin in pixels
  6440.  10h    WORD    sub-rectangle width
  6441.  12h    WORD    sub-rectangle height
  6442. SeeAlso: #3140,#3142,#3143
  6443.  
  6444. Format of HCBBW parameter block:
  6445. Offset    Size    Description    (Table 3143)
  6446.  00h    WORD    0006h or 000Eh (length of following data)
  6447.  02h    WORD    data format
  6448.         0000h across-the-plane copy (color expansion)
  6449.         0008h through-the-plane copy
  6450.  04h    WORD    data rectangle's width
  6451.  06h    WORD    data rectangle's height
  6452. ---optional---
  6453.  08h    WORD    sub-rectangle left margin in pixels
  6454.  0Ah    WORD    sub-rectangle top margin in pixels
  6455.  0Ch    WORD    sub-rectangle width
  6456.  0Eh    WORD    sub-rectangle height
  6457. SeeAlso: #3140,#3141,#3142
  6458.  
  6459. Format of HCCHST parameter block:
  6460. Offset    Size    Description    (Table 3144)
  6461.  00h    WORD    length of following data
  6462.  02h  N BYTEs    ASCII string to display (length given by 'length' field above)
  6463. SeeAlso: #3145
  6464.  
  6465. Format of HCHST parameter block:
  6466. Offset    Size    Description    (Table 3145)
  6467.  00h    WORD    length of following data
  6468.  02h  2 WORDs    X,Y of left-bottom corner of string on screen
  6469.  06h  N BYTEs    ASCII string to display (length given by 'length' field above)
  6470. SeeAlso: #3144
  6471.  
  6472. Format of HCLINE parameter block:
  6473. Offset    Size    Description    (Table 3146)
  6474.  00h    WORD    length of following data (multiple of 4)
  6475.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  6476. Notes:    the first line segment is drawn beginning at the current position
  6477.     on completion, the current position is set to the last point drawn
  6478. SeeAlso: #3156,#3167,#3149
  6479.  
  6480. Format of HCLOSE parameter block:
  6481. Offset    Size    Description    (Table 3147)
  6482.  00h    WORD    0001h (length of following data)
  6483.  01h    BYTE    (ret) return code
  6484. SeeAlso: #3158
  6485.  
  6486. Format of HCMRK parameter block:
  6487. Offset    Size    Description    (Table 3148)
  6488.  00h    WORD    length of following data
  6489.  02h 2N WORDs    X,Y of N points
  6490. Note:    draws N+1 marker symbols, the first one at the current position
  6491. SeeAlso: #3157
  6492.  
  6493. Format of HCRLINE parameter block:
  6494. Offset    Size    Description    (Table 3149)
  6495.  00h    WORD    length of following data (multiple of 4)
  6496.  02h 2N WORDs    X,Y coordinates relative to the position of the previous point
  6497.           (current position for first point) for each of N points in
  6498.           polyline
  6499. Notes:    the first line segment is drawn beginning at the current position
  6500.     on completion, the current position is set to the last point drawn
  6501. SeeAlso: #3156,#3146,#3167
  6502.  
  6503. Format of HEAR parameter block:
  6504. Offset    Size    Description    (Table 3150)
  6505.  00h    WORD    0001h (length of following data)
  6506.  02h    BYTE    area definition flags
  6507.         bits 7-6: End Area type
  6508.             00 complete, perform fill
  6509.             01 suspend definition
  6510.             10 complete, but don't fill
  6511. SeeAlso: #3138
  6512.  
  6513. Format of HEGS parameter block:
  6514. Offset    Size    Description    (Table 3151)
  6515.  00h    WORD    0000h (no data following)
  6516.  
  6517. Format of HESC parameter block:
  6518. Offset    Size    Description    (Table 3152)
  6519.  00h    WORD    0000h (no data following)
  6520.  
  6521. Format of HINIT parameter block:
  6522. Offset    Size    Description    (Table 3153)
  6523.  00h    WORD    0002h (length of following data)
  6524.  02h    WORD    segment of task buffer
  6525. SeeAlso: #3192
  6526.  
  6527. Format of HINT parameter block:
  6528. Offset    Size    Description    (Table 3154)
  6529.  00h    WORD    0004h (length of following data)
  6530.  02h    DWORD    interrupt/event identifier
  6531.         bit 31: vertical blanking
  6532.  
  6533. Format of HLDPAL parameter block:
  6534. Offset    Size    Description    (Table 3155)
  6535.  00h    WORD    000Ah (length of following data)
  6536.  02h    BYTE    palette ID (00h = user, 01h = default)
  6537.  03h    BYTE    reserved
  6538.  04h    WORD    number of first palette entry
  6539.  06h    WORD    number of entries
  6540.  08h    DWORD    -> palette entries
  6541. SeeAlso: #3189
  6542.  
  6543. Format of HLINE parameter block:
  6544. Offset    Size    Description    (Table 3156)
  6545.  00h    WORD    length of following data (multiple of 4)
  6546.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  6547. Note:    on completion, the current position is set to the last point drawn
  6548. SeeAlso: #3146,#3167,#3149
  6549.  
  6550. Format of HMRK parameter block:
  6551. Offset    Size    Description    (Table 3157)
  6552.  00h    WORD    length of following data (multiple of 4)
  6553.  02h 2N WORDs    X,Y for N points
  6554. SeeAlso: #3148
  6555.  
  6556. Format of HOPEN parameter block:
  6557. Offset    Size    Description    (Table 3158)
  6558.  00h    WORD    0003h (length of following data)
  6559.  01h    BYTE    initialization flags
  6560.         bit 6: don't load default palette
  6561.         bit 7: clear bitplanes
  6562.  02h    BYTE    mode type (see #3159)
  6563.  03h    BYTE    (ret) return code
  6564.         bit 7: no adapter (hardware mismatch)
  6565. SeeAlso: #3147
  6566.  
  6567. (Table 3159)
  6568. Values for 8514/A display mode:
  6569.  0000h    12x20 characters, 1024x768
  6570.  0001h    8x14 characters, 640x480
  6571.  0002h    8x14 characters, 1024x768
  6572.  0003h    7x15 characters, 1024x768
  6573.  
  6574. Format of HQCOORD parameter block:
  6575. Offset    Size    Description    (Table 3160)
  6576.  00h    WORD    0004h (length of following data)
  6577.  02h    BYTE    (ret) coordinate format
  6578.         bits 7-4: bytes per coordinate
  6579.         bits 3-0: fraction bytes in coordinate
  6580.  03h    BYTE    (ret) relative coordinate format
  6581.         bits 7-4: bytes per coordinate
  6582.         bits 3-0: fraction bytes in coordinate
  6583.  04h    BYTE    (ret) number of dimensions (2-4)
  6584.  05h    BYTE    (ret) test results
  6585.         bit 7: coordinate format not supported
  6586.         bit 6: relative coordinate format not supported
  6587.         bit 5: specified dimension not supported
  6588.  
  6589. Format of HQCP parameter block:
  6590. Offset    Size    Description    (Table 3161)
  6591.  00h    WORD    0004h (length of following data)
  6592.  02h    WORD    (ret) current X position
  6593.  04h    WORD    (ret) current Y position
  6594.  
  6595. Format of HQDFPAL parameter block:
  6596. Offset    Size    Description    (Table 3162)
  6597.  00h    WORD    0040h (length of following data)
  6598.  02h 16    DWORDs    (ret) color index values
  6599. Note:    the default palette is set to match the default EGA/VGA 16-color
  6600.       palettes
  6601.  
  6602. Format of HQDPS parameter block:
  6603. Offset    Size    Description    (Table 3163)
  6604.  00h    WORD    0006h (length of following data)
  6605.  02h    WORD    (ret) size of data buffer in bytes
  6606.  04h    WORD    (ret) stack size in bytes
  6607.  06h    WORD    (ret) size of palette save buffer in bytes
  6608.  
  6609. Format of HQMODE parameter block:
  6610. Offset    Size    Description    (Table 3164)
  6611.  00h    WORD    0012h (length of following data)
  6612.  02h    BYTE    current video mode (see #3159)
  6613.  03h    WORD    driver version
  6614.         bit 6: 80286/8086 CPU
  6615.         bit 5: 8 bit planes instead of 4 planes
  6616.         bits 4-0: hardware release number
  6617.  05h    BYTE    adapter type
  6618.         03h 8514/A
  6619.         04h XGA
  6620.  06h    BYTE    reserved (display type)
  6621.  07h    BYTE    character cell width
  6622.  08h    BYTE    character cell height
  6623.  09h    BYTE    number of bit planes
  6624.  0Ah    WORD    screen width (pixels)
  6625.  0Ch    WORD    screen height (pixels)
  6626.  0Eh    WORD    horizontal resolution (pixels/inch)
  6627.  10h    WORD    vertical resolution (pixels/inch)
  6628.  12h    BYTE    flag: 00h = monochrome, FFh = color
  6629.  13h    BYTE    intensity levels
  6630. SeeAlso: #3165
  6631.  
  6632. Format of HQMODES parameter block:
  6633. Offset    Size    Description    (Table 3165)
  6634.  00h    WORD    0021h (length of following data)
  6635.  02h    BYTE    (ret) adapter type
  6636.  03h 32 BYTEs    (ret) available display modes (FFh byte marks end of data)
  6637. SeeAlso: #3164
  6638.  
  6639. Format of HRECT parameter block:
  6640. Offset    Size    Description    (Table 3166)
  6641.  00h    WORD    0008h (legth of following data)
  6642.  02h  2 WORDs    X,Y coordinates of top left corner or rectangle
  6643.  06h    WORD    rectangle's width
  6644.  08h    WORD    rectangle's height
  6645. Note:    the rectangle is filled using the current pattern, color, and mix
  6646.  
  6647. Format of HRLINE parameter block:
  6648. Offset    Size    Description    (Table 3167)
  6649.  00h    WORD    length of following data (multiple of 4)
  6650.  02h  2 WORDs    X,Y coordinates of starting point
  6651.  06h 2N WORDs    X,Y coordinates relative to the position of the previous point
  6652.           for each of N points in polyline
  6653. Note:    on completion, the current position is set to the last point drawn
  6654. SeeAlso: #3156,#3146,#3149
  6655.  
  6656. Format of HRLPC parameter block:
  6657. Offset    Size    Description    (Table 3168)
  6658.  00h    WORD    0000h (no data following)
  6659. Note:    used for continuity of lines crossing scissors boundaries
  6660. SeeAlso: #3181
  6661.  
  6662. Format of HRPAL parameter block:
  6663. Offset    Size    Description    (Table 3169)
  6664.  00h    WORD    0300h (length of following data)
  6665.  02h 768 BYTEs    buffer containing previously-saved palette table
  6666. SeeAlso: #3189
  6667.  
  6668. Format of HSBCOL parameter block:
  6669. Offset    Size    Description    (Table 3170)
  6670.  00h    WORD    0004h (length of following data)
  6671.  02h    DWORD    color index for new background color
  6672. SeeAlso: #3174
  6673.  
  6674. Format of HSBP parameter block:
  6675. Offset    Size    Description    (Table 3171)
  6676.  00h    WORD    000Ch (length of following data)
  6677.  02h    DWORD    bitmask for graphics updates
  6678.  06h    DWORD    bitmask for alphanumeric updates
  6679.  0Ah    DWORD    display bitmask
  6680.  
  6681. Format of HSCELL parameter block:
  6682. Offset    Size    Description    (Table 3172)
  6683.  00h
  6684.  
  6685. Format of HSCMP parameter block:
  6686. Offset    Size    Description    (Table 3173)
  6687.  00h    WORD    0005h (length of following data)
  6688.  02h    DWORD    comparison color
  6689.  06h    BYTE    logical operation
  6690.         00h True
  6691.         01h pel > testcolor
  6692.         02h pel == testcolor
  6693.         03h pel < testcolor
  6694.         04h False
  6695.         05h pel >= testcolor
  6696.         06h pel <> testcolor
  6697.         07h pel <= testcolor
  6698.  
  6699. Format of HSCOL parameter block:
  6700. Offset    Size    Description    (Table 3174)
  6701.  00h    WORD    0004h (length of following data)
  6702.  02h    DWORD    color index for new foreground color
  6703. SeeAlso: #3170
  6704.  
  6705. Format of HSCOORD parameter block:
  6706. Offset    Size    Description    (Table 3175)
  6707.  00h    WORD    0003h (length of following data)
  6708.  02h    BYTE    coordinate format
  6709.         bits 7-4: bytes per coordinate
  6710.         bits 3-0: fraction bytes in coordinate
  6711.  03h    BYTE    relative coordinates format
  6712.         bits 7-4: bytes per coordinate
  6713.         bits 3-0: fraction bytes in coordinate
  6714.  04h    BYTE    number of dimensions (2-4)
  6715.  
  6716. Format of HSCP parameter block:
  6717. Offset    Size    Description    (Table 3176)
  6718.  00h    WORD    0004h (length of following data)
  6719.  02h  2 WORDs    X,Y or coordinate for new current position
  6720.  
  6721. Format of HSCS parameter block:
  6722. Offset    Size    Description    (Table 3177)
  6723.  00h    WORD    0004h (length of following data)
  6724.  02h    DWORD    -> character set definition
  6725.  
  6726. Format of HSGQ parameter block:
  6727. Offset    Size    Description    (Table 3178)
  6728.  00h    WORD    0002h (length of following data)
  6729.  02h    WORD    quality settings (see #3180)
  6730.  
  6731. Format of HSHS parameter block:
  6732. Offset    Size    Description    (Table 3179)
  6733.  00h    WORD    0008h (length of following data)
  6734.  02h    WORD    left edge of clipping rectangle (-2048 to +6143)
  6735.  04h    WORD    right edge
  6736.  06h    WORD    top edge
  6737.  08h    WORD    bottom edget
  6738.  
  6739. Bitfields for 8514/A quality settings:
  6740. Bit(s)    Description    (Table 3180)
  6741.  15    reserved
  6742.  14    high precision
  6743.  13    reserved
  6744.  12-11    pel code
  6745.     00 not drawn
  6746.     01 drawn
  6747.     02 conditional on overpainting/mixes
  6748.  10    don't close areas to be filed
  6749.  9-0    reserved
  6750.  
  6751. Format of HSLPC parameter block:
  6752. Offset    Size    Description    (Table 3181)
  6753.  00h    WORD    0000h (no data following)
  6754. Note:    used for continuity of lines crossing scissors boundaries
  6755. SeeAlso: #3168
  6756.  
  6757. Format of HSLT parameter block:
  6758. Offset    Size    Description    (Table 3182)
  6759.  00h    WORD    0006h (length of following data)
  6760.  02h    BYTE    line type (see #3183)
  6761.  03h    BYTE    reserved
  6762.  04h    DWORD    -> user line-type definition (if user type)
  6763. SeeAlso: #3184
  6764.  
  6765. (Table 3183)
  6766. Values for 8514/A line type:
  6767.  00h    user line type
  6768.  01h    dotted
  6769.  02h    short dashes
  6770.  03h    dash-dot
  6771.  04h    double dotted
  6772.  05h    dashed
  6773.  06h    dash double dot
  6774.  07h    solid
  6775.  08h    invisible
  6776. SeeAlso: #3182
  6777.  
  6778. Format of HSLW parameter block:
  6779. Offset    Size    Description    (Table 3184)
  6780.  00h    WORD    0001h (length of following data)
  6781.  02h    BYTE    width of line in pixels
  6782. SeeAlso: #3182
  6783.  
  6784. Format of HSMODE parameter block:
  6785. Offset    Size    Description    (Table 3185)
  6786.  00h    WORD    0001h (length of following data)
  6787.  02h    BYTE    new display mode number (see #3159)
  6788.  
  6789. Format of HSMRK paramter block:
  6790. Offset    Size    Description    (Table 3186)
  6791.  00h    WORD    000Eh (length of following data)
  6792.  02h    BYTE    cell width
  6793.  03h    BYTE    cell height
  6794.  04h    BYTE    flags
  6795.  05h    BYTE    reserved
  6796.  06h    WORD    length of marker symbol
  6797.  08h    DWORD    -> image definition data
  6798.  0Ch    DWORD    -> color definition data
  6799. SeeAlso: #3190
  6800.  
  6801. Format of HSMX parameter block:
  6802. Offset    Size    Description    (Table 3187)
  6803.  00h    WORD    0002h (length of following data)
  6804.  02h    BYTE    foreground mix (see #3188)
  6805.  03h    BYTE    background mix (see #3188)
  6806.  
  6807. (Table 3188)
  6808. Values for 8514/A mix:
  6809.  00h    retain previous mix
  6810.  01h    source OR destination
  6811.  02h    source
  6812.  04h    source XOR destination
  6813.  05h    leave as-is
  6814.  06h    max(source,destination)
  6815.  07h    min(source,destination)
  6816.  08h    source+destination (clipped)
  6817.  09h    destination-source (clipped to zero)
  6818.  0Ah    source-destination (clipped to zero)
  6819.  0Bh    average source and destination
  6820.  10h    zero destination
  6821.  11h    source AND destination
  6822.  12h    source AND NOT destination
  6823.  13h    source
  6824.  14h    NOT source AND destination
  6825.  15h    leave as-is
  6826.  16h    source XOR destination
  6827.  17h    source OR destination
  6828.  18h    NOT source AND NOT destination
  6829.  19h    NOT (source XOR destination)
  6830.  1Ah    NOT destination
  6831.  1Bh    source OR NOT destination
  6832.  1Ch    NOT source
  6833.  1Dh    NOT source OR destination
  6834.  1Eh    NOT source OR NOT destination
  6835.  1Fh    set all bits of destination
  6836.  
  6837. Format of HSPAL parameter block:
  6838. Offset    Size    Description    (Table 3189)
  6839.  00h    WORD    0300h (length of following data)
  6840.  02h 768 BYTEs    buffer for palette table
  6841. SeeAlso: #3155,#3169
  6842.  
  6843. Format of HSPATT parameter block:
  6844. Offset    Size    Description    (Table 3190)
  6845.  00h    WORD    000Eh (length of following data)
  6846.  02h    BYTE    cell width
  6847.  03h    BYTE    cell height
  6848.  04h    BYTE    flags
  6849.  05h    BYTE    reserved
  6850.  06h    WORD    length of marker symbol
  6851.  08h    DWORD    -> image definition data
  6852.  0Ch    DWORD    -> color definition data
  6853. SeeAlso: #3186,#3191
  6854.  
  6855. Format of HSPATTO parameter block:
  6856. Offset    Size    Description    (Table 3191)
  6857.  00h    WORD    0004h (length of following data)
  6858.  02h  2 WORDs    X,Y of pattern reference point (origin)
  6859. SeeAlso: #3190
  6860.  
  6861. Format of HSYNC parameter block:
  6862. Offset    Size    Description    (Table 3192)
  6863.  00h    WORD    0002h (length of following data)
  6864.  02h    WORD    segment of task state buffer
  6865. SeeAlso: #3153
  6866.  
  6867. Format of HXLATE parameter block:
  6868. Offset    Size    Description    (Table 3193)
  6869.  00h    WORD    0020h (length of following data)
  6870.  02h 32 BYTEs    color index table
  6871. --------V-7F0105-----------------------------
  6872. INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS)
  6873.     AX = 0105h
  6874. Return: CF set on error
  6875.     CF clear if successful
  6876.         CX:DX -> array of FAR pointers to entry points (see #3126)
  6877. Note:    this API is a superset of the 8514/A Adapter Interface
  6878.       (see AX=0105h"HDILOAD")
  6879. --------V-7F0106-----------------------------
  6880. INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL
  6881.     AX = 0106h
  6882. Return: AX = 0105h if successfully unloaded
  6883. SeeAlso: AX=0105h
  6884. --------N-7F02-------------------------------
  6885. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  6886.     AH = 02h
  6887.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  6888. Return: AL = status (see #3120)
  6889.     AH = semaphore owner if status=02h
  6890. SeeAlso: AH=00h,AH=01h,AH=42h
  6891. --------T-7F02-------------------------------
  6892. INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU
  6893.     AH = 02h
  6894. Return: ???
  6895. Desc:    yields CPU to other tasks
  6896. SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000h
  6897. --------N-7F02-------------------------------
  6898. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  6899.     AH = 02h
  6900.     AL = stream number (01h-40h)
  6901.     CX = length of frame
  6902.     ES:SI -> frame to be sent
  6903. SeeAlso: AH=00h"G8BPQ",AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  6904. --------f-7F0200-----------------------------
  6905. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  6906.     AX = 0200h
  6907. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  6908. --------N-7F03-------------------------------
  6909. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  6910.     AH = 03h
  6911. Return: AL = user number
  6912.     AH = machine number (MW386)
  6913. Note:    this function call is the recommended method for a CPU-bound process to
  6914.       prevent its priority from being lowered
  6915. SeeAlso: AH=04h,AH=05h,AH=A1h
  6916. --------N-7F03-------------------------------
  6917. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  6918.     AH = 03h
  6919.     AL = stream number (01h-40h)
  6920.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  6921.           bytes is usually sufficient)
  6922. Return: BX = number of pending frames (0000h if returned frame was last avail)
  6923.     CX = length of received frame
  6924. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  6925. --------N-7F04-------------------------------
  6926. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  6927.     AH = 04h
  6928. Return: AL = total number of users on currrent machine (MW386)
  6929.     AL = number of slaves on system (NTNX)
  6930. SeeAlso: AH=03h
  6931. --------N-7F04-------------------------------
  6932. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  6933.     AH = 04h
  6934.     AL = stream number (01h-40h)
  6935. Return: CX = state (0000h disconnected, 0001h connected)
  6936.     DX = delta state (0000h no change, 0001h changed since last check)
  6937. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=05h"G8BPQ"
  6938. --------N-7F05-------------------------------
  6939. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  6940.     AH = 05h
  6941.     AL = function
  6942.         00h lock system (disable slave services)
  6943.         01h unlock system
  6944.         02h enable spooler
  6945.         03h disable spooler
  6946.         04h enable slave timer update
  6947.         05h disable slave timer update
  6948.         06h enable form feeds
  6949.         07h disable form feeds
  6950. SeeAlso: INT 17/AH=A4h
  6951. --------N-7F05-------------------------------
  6952. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  6953.     AH = 05h
  6954.     DX:DI -> buffer for user information record (see #3194)
  6955. Notes:    MW386 provides this function for backward compatibility only, and sets
  6956.       many of the fields to zero because they are meaningless under MW386
  6957.     this function has no effect when called by the host (user 0)
  6958. SeeAlso: AH=03h
  6959.  
  6960. Format of Alloy user information record:
  6961. Offset    Size    Description    (Table 3194)
  6962.  00h    WORD    segment of video RAM
  6963.  02h    WORD    segment of secondary copy of video RAM
  6964.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  6965.         flag nonzero if update needed
  6966.  06h    WORD    video NMI enable port
  6967.         (not used by MW386, set to 0000h)
  6968.  08h    WORD    video NMI disable port
  6969.         (not used by MW386, set to 0000h)
  6970.  0Ah    BYTE    processor type
  6971.         00h 8088
  6972.         01h V20
  6973.         02h 8086
  6974.         03h V30
  6975.         06h 80386
  6976.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  6977.         (not used by MW386, set to 0000h)
  6978.  0Dh    WORD    offset of terminal driver
  6979.         (not used by MW386, set to 0000h)
  6980.  0Fh    BYTE    port for console I/O
  6981.         (not used by MW386, set to 0000h)
  6982.  10h    WORD    offset of processor communication busy flag
  6983.         bit 7 set when slave communicating with host
  6984.  12h    WORD    pointer to FAR NX system call
  6985.         (not used by MW386, set to 0000h)
  6986.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  6987.  16h    WORD    offset of command/status word
  6988.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  6989.         nonzero if screen must be repainted
  6990.  1Ah    WORD    offset of screen repaint flag
  6991.  1Ch    WORD    pointer to NEAR NX system call
  6992.         (not used by MW386, set to 0000h)
  6993.  1Eh    WORD    offset for intercept flags
  6994.         (not used by MW386, set to 0000h)
  6995.         intercept flag = FFh if MS-DOS intercepts should be disabled
  6996.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  6997.         lock flag = FFh if backgrnd screen updates should be suspended
  6998.  22h 26 BYTEs    reserved
  6999. --------N-7F05-------------------------------
  7000. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  7001.     AH = 05h
  7002.     AL = stream number (01h-40h)
  7003. Note:    this function must be called in order to receive a report of another
  7004.       status change
  7005. SeeAlso: AH=00h"G8BPQ",AH=04h"G8BPQ"
  7006. --------N-7F06-------------------------------
  7007. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  7008.     AH = 06h
  7009.     AL = drive number (1=A:, 2=B:, etc)
  7010.     ES:DI -> drive info record (see #3195)
  7011. Return: AX = status
  7012.         0000h successful
  7013.         ES:DI buffer filled
  7014.         0001h not shared drive
  7015.  
  7016. Format of Alloy drive info record:
  7017. Offset    Size    Description    (Table 3195)
  7018.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  7019.  02h    WORD    segment of allocation map (owner table)
  7020.         one byte per FAT entry, containing user ID owning that entry
  7021.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  7022.  06h    WORD    pointer to configuration file
  7023.  08h    WORD    total number of clusters
  7024.  0Ah    WORD    bytes per sector
  7025.  0Ch    WORD    sectors per cluster
  7026.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  7027. --------N-7F06-------------------------------
  7028. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  7029.     AH = 06h
  7030.     DL = drive number (1=A:,2=B:,etc)
  7031.     CX = number of clusters to allocate
  7032. Return: AH = status
  7033.         00h successful
  7034.         CX = number of clusters still free
  7035.         10h invalid shared drive request
  7036.         CL = first and second shared drives
  7037.         11h invalid cluster count (must be 01h-FFh)
  7038. --------N-7F06-------------------------------
  7039. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  7040.     AH = 06h
  7041.     AL = stream number (01h-40h)
  7042.     CX = subfunction
  7043.         0000h connect to node
  7044.         DL bit 0: use BBS callsign instead of Node Call
  7045.         0001h connect to node
  7046.         use BBS Call if APPLMASK=1
  7047.         0002h disconnect
  7048.         0003h return user to node
  7049. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  7050. --------N-7F07-------------------------------
  7051. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  7052.     AH = 07h
  7053. Return: ES:DI -> shared drive list (see #3196)
  7054. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  7055.       be returned as shared
  7056.  
  7057. Format of Alloy shared drive list:
  7058. Offset    Size    Description    (Table 3196)
  7059.  00h    BYTE    string length
  7060.  01h    BYTE    number of shared drives
  7061.  02h  N BYTEs    one byte per shared drive
  7062. --------N-7F07-------------------------------
  7063. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  7064.     AH = 07h
  7065.     AL = stream number (01h-40h)
  7066. Return: BX = number of pending receive frames
  7067.     CX = number of unacknowledged sent frames
  7068.     DX = number of buffers available
  7069. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  7070. --------N-7F08-------------------------------
  7071. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  7072.     AH = 08h
  7073.     CL = function
  7074.         00h get original interrupt vector
  7075.         01h get Network Executive interrrupt
  7076.     AL = interrupt number
  7077.     DX:SI -> DWORD to hold interrupt vector
  7078. Return: AL = status
  7079.         00h successful
  7080.         01h interrupt vector not used by network executive
  7081.         02h invalid subfunction
  7082. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  7083.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  7084. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  7085. --------N-7F08--CL02-------------------------
  7086. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  7087.     AH = 08h
  7088.     CL = 02h
  7089.     DX = timeout in seconds
  7090. Return: AL = status
  7091.         00h successful
  7092.         02h invalid subfunction
  7093. --------N-7F08-------------------------------
  7094. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  7095.     AH = 08h
  7096.     AL = stream number (01h-40h)
  7097. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  7098.     ---v4.05+ ---
  7099.     AL = radio port to which channel is connected (level 2)
  7100.     AH = session type (see #3197)
  7101.     BX = L2 paclen for session
  7102.     CX = maximum frame size
  7103.     DX = L4 window size or 0000h if not L4 circuit
  7104. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  7105.       John Wiseman which allows a PC to act as a node in an AX.25 network
  7106. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  7107.  
  7108. Bitfields for G8BPQ session type:
  7109. Bit(s)    Description    (Table 3197)
  7110.  0    L2LINK
  7111.  1    SESSION
  7112.  2    UPLINK
  7113.  3    DOWNLIND
  7114.  5    BPQHOST
  7115. --------T-7F09-------------------------------
  7116. INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY
  7117.     AH = 09h
  7118.     AL = priority (0-7)
  7119. Note:    the installation check consists of ensuring that the interrupt vector
  7120.       is not pointing at segment 0000h, then checking whether the byte
  7121.       at offset 0000h in the interrupt handler's segment is E9h
  7122. Index:    installation check;MultiLink Advanced
  7123. SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink"
  7124. --------N-7F09-------------------------------
  7125. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  7126.     AH = 09h
  7127.     AL = application
  7128.         00h node
  7129.         01h BBS
  7130.         02h HOST
  7131.         03h SYSOP
  7132.     BL = what to get (00h callsign, 01h application name)
  7133.     ES:SI -> buffer for callsign/name string
  7134. Return: CX = length of returned string
  7135. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  7136. --------N-7F09-------------------------------
  7137. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  7138.     AH = 09h
  7139.     CL = function
  7140.         00h enable checking of RTNX.MUD file
  7141.         01h disable RTNX.MUD checking
  7142. --------N-7F09--CL02-------------------------
  7143. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  7144.     AH = 09h
  7145.     CL = 02h
  7146. Note:    in dedicated mode, the host will only poll for I/O requests from the
  7147.       slave processors, and not provide workstation services
  7148. --------N-7F09--CL03-------------------------
  7149. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  7150.     AH = 09h
  7151.     CL = 03h
  7152.     AL = default interrupt number (67h,7Fh,etc)
  7153. Return: CL = actual interrupt which handles specified interrupt's calls
  7154. SeeAlso: AH=08h
  7155. --------N-7F0A--CL00-------------------------
  7156. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  7157.     AH = 0Ah
  7158.     CL = 00h
  7159.     ES:DI -> buffer for system flags (see #3198)
  7160. Return: ES:DI buffer filled
  7161. Notes:    on a slave, only the NX_Busy flag is returned
  7162.     all three flags are at fixed positions, so this function only needs to
  7163.       be called once
  7164.     an interrupt handler should only perform DOS or device accesses when
  7165.       all three flags are 00h
  7166.  
  7167. Format of Alloy system flags:
  7168. Offset    Size    Description    (Table 3198)
  7169.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  7170.  04h    DWORD    pointer to device driver busy flag
  7171.  08h    DWORD    pointer to InTimer flag
  7172. --------N-7F0A-------------------------------
  7173. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  7174.     AH = 0Ah
  7175.     AL = radio port
  7176.     ES:SI -> buffer containing data to be sent
  7177.     CX = number of bytes to send
  7178. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  7179. --------T-7F0A-------------------------------
  7180. INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS
  7181.     AH = 0Ah
  7182.     AL = task-switch status
  7183.         00h normal (disable task when it repeatedly polls keyboard)
  7184.         01h disable task until keyboard input available
  7185.         FFh never disable task
  7186. Return: ???
  7187. SeeAlso: AH=09h"MultiLink"
  7188. --------N-7F0B--CL02-------------------------
  7189. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  7190.     AH = 0Bh
  7191.     CL = 02h
  7192.     AL = slave ID number
  7193.     CH = DOS to activate
  7194.         00h graphics DOS
  7195.         01h character DOS
  7196. Return: AL = status
  7197.         00h successful
  7198.         01h nothing done, proper DOS type already loaded
  7199. --------N-7F0B-------------------------------
  7200. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  7201.     AH = 0Bh
  7202.     ES:DI -> buffer for received data (see #3199)
  7203. Return: CX = number of bytes received
  7204. Note:    the specified buffer must be large enough to receive a full frame
  7205. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  7206.  
  7207. Format of G8BPQ received data:
  7208. Offset    Size    Description    (Table 3199)
  7209.  00h    WORD    internal control information
  7210.  02h    BYTE    port number (bit 7 set if transmitted frame)
  7211.  03h    WORD    frame length including this header
  7212.  05h    var    user data
  7213. --------N-7F0C-------------------------------
  7214. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  7215.     AH = 0Ch
  7216.     DX = function
  7217.         0001h update beacon text
  7218.         CX = length of data
  7219.         ES:SI -> data to be sent in beacons
  7220.         0002h (v4.07+) initiate NODES broadcast
  7221. SeeAlso: AH=09h"G8BPQ"
  7222. --------N-7F0D00-----------------------------
  7223. INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM
  7224.     AX = 0D00h
  7225. Return: AL = first available stream number, or FFh if none free
  7226. SeeAlso: AH=00h"G8BPQ",AH=0Dh
  7227. --------N-7F0D-------------------------------
  7228. INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM
  7229.     AH = 0Dh
  7230.     AL = stream number (01h-FFh)
  7231.     CL = function
  7232.         01h allocate stream
  7233.         Return: CX = status (0000h successful, else already in use)
  7234.         02h deallocate stream
  7235. SeeAlso: AX=0D00h
  7236. --------N-7F0F-------------------------------
  7237. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  7238.     AH = 0Fh
  7239. Return: AX = time marker (clock ticks modulo 64K)
  7240. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  7241.       John Wiseman which allows a PC to act as a node in an AX.25 network
  7242. SeeAlso: AH=01h"G8BPQ",AX=0D00h,INT 1A/AH=00h
  7243. --------N-7F10--CL00-------------------------
  7244. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  7245.     AH = 10h
  7246.     CL = 00h
  7247.     AL = channel number
  7248.     DX:DI -> channel buffer
  7249. Return: AL = status (00h-03h,0Dh) (see #3200)
  7250. Note:    may not be invoked from within a hardware interrupt handler
  7251. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  7252.  
  7253. (Table 3200)
  7254. Values for Alloy function status:
  7255.  00h    successful
  7256.  01h    busy
  7257.  02h    channel range error (not 00h-3Fh)
  7258.  03h    invalid subfunction
  7259.  0Ah    channel not open
  7260.  0Ch    channel already locked
  7261.  0Dh    unable to open
  7262. --------N-7F10--CL01-------------------------
  7263. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  7264.     AH = 10h
  7265.     CL = 01h
  7266.     AL = channel number
  7267. Return: AL = status (00h-03h,0Ah) (see #3200)
  7268. Note:    may not be invoked from within a hardware interrupt handler
  7269. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  7270. --------N-7F10--CL02-------------------------
  7271. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  7272.     AH = 10h
  7273.     CL = 02h
  7274.     AL = channel number
  7275. Return: AL = status (00h-03h,0Ah,0Ch) (see #3200)
  7276. Note:    may not be invoked from within a hardware interrupt handler
  7277. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  7278. --------N-7F10--CL03-------------------------
  7279. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  7280.     AH = 10h
  7281.     CL = 03h
  7282.     AL = channel number
  7283. Return: AL = status (00h-03h,0Ah) (see #3200)
  7284. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  7285.       locked by receipt of a datagram
  7286.     may not be invoked from within a hardware interrupt handler
  7287. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  7288. --------N-7F10--CL04-------------------------
  7289. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  7290.     AH = 10h
  7291.     CL = 04h
  7292.     AL = channel number
  7293. Return: AL = status (00h-03h) (see #3200)
  7294. Notes:    unlocks buffer after received datagram has been processed
  7295.     may not be invoked from within a hardware interrupt handler
  7296. SeeAlso: AH=10h/CL=00h
  7297. --------N-7F10--CL05-------------------------
  7298. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  7299.     AH = 10h
  7300.     CL = 05h
  7301. Return: AL = status (00h-03h) (see #3200)
  7302. Notes:    clears all pending datagrams and clears buffer pointers before closing
  7303.       the channels
  7304.     may not be invoked from within a hardware interrupt handler
  7305. SeeAlso: AH=10h/CL=01h
  7306. --------N-7F10--CL06-------------------------
  7307. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  7308.     AH = 10h
  7309.     CL = 06h
  7310. Return: AL = status (00h-03h) (see #3200)
  7311. Note:    may not be invoked from within a hardware interrupt handler
  7312. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  7313. --------N-7F10--CL07-------------------------
  7314. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  7315.     AH = 10h
  7316.     CL = 07h
  7317. Return: AL = status (00h-03h) (see #3200)
  7318. Notes:    unlocks all locked channels which have no pending datagrams
  7319.     may not be invoked from within a hardware interrupt handler
  7320. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  7321. --------N-7F10--CL08-------------------------
  7322. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  7323.     AH = 10h
  7324.     CL = 08h
  7325.     DX = maximum channel number to lock
  7326. Return: AL = status (00h-03h) (see #3200)
  7327. Notes:    locks channels numbered 00h through the value in DX
  7328.     may not be invoked from within a hardware interrupt handler
  7329. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  7330. --------N-7F10--CL09-------------------------
  7331. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  7332.     AH = 10h
  7333.     CL = 09h
  7334.     DX = maximum channel number to unlock
  7335. Return: AL = status (00h-03h) (see #3200)
  7336. Notes:    unlocks channels numbered 00h through the value in DX
  7337.     may not be invoked from within a hardware interrupt handler
  7338. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  7339. --------N-7F11-------------------------------
  7340. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  7341.     AH = 11h
  7342.     DX:SI -> request block (see #3202)
  7343. Return: AL = status (see #3201)
  7344. Note:    if wildcard channel FFh used, actual channel number will be filled in
  7345. SeeAlso: AH=12h
  7346.  
  7347. (Table 3201)
  7348. Values for Alloy function status:
  7349.  00h    successful
  7350.  01h    busy
  7351.  02h    channel range error (not 00h-3Fh)
  7352.  03h    invalid subfunction
  7353.  0Ah    packet too large (or <2 bytes if NTNX)
  7354.  0Bh    can't send packet to itself
  7355.  0Ch    invalid number of destinations
  7356.  0Dh    destination channel number out of range
  7357.  0Eh    destination user is busy
  7358.  0Fh    destination user has locked channel
  7359.  10h    channel not open
  7360.  11h    no datagram server on destination (NTNX)
  7361.  
  7362. Format of Alloy request block:
  7363. Offset    Size    Description    (Table 3202)
  7364.  00h    DWORD    pointer to packet to send
  7365.  04h    WORD    packet size in bytes (1-4096)
  7366.  06h    BYTE    number of destinations for packet (max 1Fh)
  7367.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  7368.  26h 31 BYTEs    destination channels (FFh = first available channel)
  7369.  45h 31 BYTEs    return destination statuses
  7370. --------N-7F12-------------------------------
  7371. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  7372.     AH = 12h
  7373.     AL = channel number being acknowledged
  7374.     DI:DX = 32-bit status to return to sender
  7375. Return: AL = status (see #3203)
  7376. Note:    also unlocks the channel, allowing the next datagram to be received
  7377. SeeAlso: AH=11h,AH=15h/CL=04h
  7378.  
  7379. (Table 3203)
  7380. Values for Alloy function status:
  7381.  00h    successful
  7382.  01h    busy
  7383.  02h    channel range error (not 00h-3Fh)
  7384.  03h    invalid subfunction
  7385.  0Ah    channel not open
  7386.  0Bh    no message in channel
  7387.  0Ch    destination slave busy--retry (NTNX)
  7388.  0Dh    destination user not active
  7389.  0Eh    destination slave not active (NTNX)
  7390.  0Fh    destination disabled datagram service
  7391. --------V-7F1234-----------------------------
  7392. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  7393.     AX = 1234h
  7394. SeeAlso: AX=4321h
  7395. --------N-7F13--CL00-------------------------
  7396. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  7397.     AH = 13h
  7398.     CL = 00h
  7399. Note:    clears all pending datagrams and removes all channels opened in NTNX
  7400.       compatibility mode
  7401. --------N-7F14--CL00-------------------------
  7402. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  7403.     AH = 14h
  7404.     CL = 00h
  7405.     DX:DI -> application FAR receive service routine (see #3204)
  7406. Return: AL = status (00h-03h) (see #3203)
  7407. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  7408.  
  7409. (Table 3204)
  7410. Values Alloy receive service routine is called with:
  7411.     DH = sender ID
  7412.     DL = channel with datagram
  7413.     interrupts disabled
  7414. Return: AL = response code
  7415.         00h leave buffer locked, set channel status, and repeat call later
  7416.         01h release channel buffer
  7417.         02h change buffer pointer to DX:DI
  7418.     AH,CX,DX,DI,SI may be destroyed
  7419. --------N-7F14--CL01-------------------------
  7420. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  7421.     AH = 14h
  7422.     CL = 01h
  7423.     DX:DI -> application FAR acknowledge service routine (see #3205)
  7424. Return: AL = status (00h-03h) (see #3203)
  7425. Note:    the service routine will be called as soon as an acknowledgment arrives
  7426. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  7427.  
  7428. (Table 3205)
  7429. Values Alloy acknowledge service routine is called with:
  7430.     DS:SI -> acknowledge structure (see #3209)
  7431. Return: AL = response code
  7432.         00h application busy, network executive should call again later
  7433.         01h acknowledge accepted
  7434.     AH,DX,SI may be destroyed
  7435. --------N-7F14--CL02-------------------------
  7436. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  7437.     AH = 14h
  7438.     CL = 02h
  7439.     AL = channel number
  7440.     DX:DI -> receive buffer
  7441. Return: AL = status (00h-03h) (see #3203)
  7442. Note:    may be called from within a receive ISR or when a datagram is pending
  7443. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  7444. --------N-7F14--CL03-------------------------
  7445. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  7446.     AH = 14h
  7447.     CL = 03h
  7448. Return: DX:DI -> current receive ISR
  7449. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  7450. --------N-7F14--CL04-------------------------
  7451. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  7452.     AH = 14h
  7453.     CL = 04h
  7454. Return: DX:DI -> current acknowledge ISR
  7455. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  7456. --------N-7F14--CL05-------------------------
  7457. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  7458.     AH = 14h
  7459.     CL = 05h
  7460.     DX:DI -> buffer for busy structure (see #3206)
  7461. Return: DX:DI buffer filled
  7462.  
  7463. Format of Alloy busy structure:
  7464. Offset    Size    Description    (Table 3206)
  7465.  00h    DWORD    pointer to busy flag byte
  7466.  04h    WORD    fixed port address (FF00h)
  7467. --------N-7F15--CL00-------------------------
  7468. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  7469.     AH = 15h
  7470.     CL = 00h
  7471.     AL = channel number
  7472.     DX:DI -> status structure (see #3207)
  7473. Return: AL = status (00h-03h) (see #3203)
  7474. SeeAlso: AH=15h/CL=01h
  7475.  
  7476. Format of Alloy channel status structure:
  7477. Offset    Size    Description    (Table 3207)
  7478.  00h    BYTE    channel status
  7479.         bit 0: channel open
  7480.         bit 1: channel buffer contains received data
  7481.         bit 7: channel locked
  7482.  01h    BYTE    sender ID
  7483. --------N-7F15--CL01-------------------------
  7484. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  7485.     AH = 15h
  7486.     CL = 01h
  7487.     DX:DI -> full-channel structure (see #3208)
  7488. Return: AL = status
  7489.         00h successful
  7490.         01h busy
  7491.         0Ah no datagrams available
  7492. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  7493.       and NTNX return the oldest datagram
  7494. SeeAlso: AH=15h/CL=00h
  7495.  
  7496. Format of Alloy full-channel structure:
  7497. Offset    Size    Description    (Table 3208)
  7498.  00h    BYTE    number of channel with oldest datagram
  7499.  01h    BYTE    sender ID
  7500. --------N-7F15--CL02-------------------------
  7501. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  7502.     AH = 15h
  7503.     CL = 02h
  7504. Return: AH = number of channels available (40h for MW386)
  7505. Note:    the application may always assume at least 32 channels available
  7506. SeeAlso: AH=15h/CL=03h
  7507. --------N-7F15--CL03-------------------------
  7508. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  7509.     AH = 15h
  7510.     CL = 03h
  7511.     DX:DI -> WORD for return value
  7512. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  7513. SeeAlso: AH=15h/CL=02h
  7514. --------N-7F15--CL04-------------------------
  7515. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  7516.     AH = 15h
  7517.     CL = 04h
  7518.     DX:DI -> status structure (see #3209)
  7519. Return: AL = status
  7520.         00h successful
  7521.         DX:DI structure filled
  7522.         01h busy
  7523.         0Ah no acknowledgement has arrived
  7524. SeeAlso: AH=12h,AH=14h/CL=01h
  7525.  
  7526. Format of Alloy status structure:
  7527. Offset    Size    Description    (Table 3209)
  7528.  00h    BYTE    sender ID
  7529.  01h    BYTE    channel number
  7530.  02h  4 BYTEs    receiver status (see #3203)
  7531. --------N-7F16-------------------------------
  7532. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  7533.     AH = 16h
  7534.     DX:SI -> transfer structure (see #3210)
  7535. Return: AL = status
  7536.         00h successful
  7537.         0Ah source or destination out of range
  7538.         0Bh transfer kernel busy--try again
  7539. Notes:    this call transfers memory contents directly between users; both source
  7540.       and destination user IDs may differ from the caller's ID
  7541.     no segment wrap is allowed
  7542.  
  7543. Format of Alloy transfer structure:
  7544. Offset    Size    Description    (Table 3210)
  7545.  00h    WORD    bytes to transfer
  7546.  02h    BYTE    source ID
  7547.         FEh = caller
  7548.  03h    DWORD    source address
  7549.  07h    BYTE    destination ID
  7550.         FFh = all slaves except caller
  7551.         FEh = caller
  7552.  08h    DWORD    destination address
  7553. --------N-7F21-------------------------------
  7554. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  7555.     AH = 21h
  7556.     AL = sender's user ID
  7557.     DS:DX -> control packet (see #3211)
  7558. Note:    messages or commands are ignored if disabled by the destination user
  7559. SeeAlso: AH=22h
  7560.  
  7561. Format of Alloy control packet:
  7562. Offset    Size    Description    (Table 3211)
  7563.  00h    BYTE    packet type
  7564.         00h message
  7565.         01h NTNX command
  7566.         02h MW386 command
  7567.  01h    BYTE    destination user ID or 'A' for all users
  7568.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  7569.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  7570. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  7571. --------N-7F22-------------------------------
  7572. INT 7F - Alloy NTNX - GET MESSAGE
  7573.     AH = 22h
  7574. Return: pending messages displayed on user's screen
  7575. SeeAlso: AH=21h
  7576. --------N-7F24-------------------------------
  7577. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  7578.     AH = 24h
  7579.     CL = function
  7580.         00h attach
  7581.         01h release
  7582.     CH = drive (0=A:,1=B:,etc)
  7583. Return: AX = status (see #3212)
  7584. Note:    only drives on the current machine may be attached
  7585.  
  7586. (Table 3212)
  7587. Values for Alloy function status:
  7588.  00h    successful
  7589.  01h    invalid request
  7590.  02h    already attached
  7591.  03h    not attached
  7592.  04h    lock table full
  7593. --------N-7F24-------------------------------
  7594. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  7595.     AH = 24h
  7596.     CL = function
  7597.         02h attach host
  7598.         03h release host
  7599. Return: AX = status (see #3212)
  7600. Note:    the host processor may be attached in order to perform I/O via the host
  7601. --------N-7F25--CL00-------------------------
  7602. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  7603.     AH = 25h
  7604.     CL = 00h
  7605. Return: AH = version suffix letter
  7606.     CH = major version number
  7607.     CL = minor version number
  7608. SeeAlso: AH=25h/CL=01h
  7609. --------N-7F25--CL01-------------------------
  7610. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  7611.     AH = 25h
  7612.     CL = 01h
  7613. Return: CL = executive type (see #3213)
  7614. SeeAlso: AH=25h/CL=00h
  7615.  
  7616. (Table 3213)
  7617. Values for Alloy network executive type:
  7618.  00h    RTNX
  7619.  01h    ATNX
  7620.  02h    NTNX
  7621.  03h    BTNX
  7622.  04h    MW386
  7623.  05h    ANSK
  7624. --------V-7F2525-----------------------------
  7625. INT 7F - TIGA Communications Driver v2.05 - ???
  7626.     AX = 2525h
  7627.     BX = ???
  7628. Return: ???
  7629. SeeAlso: AX=4321h,AX=5555h
  7630. --------N-7F26--CL00-------------------------
  7631. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  7632.     AH = 26h
  7633.     CL = 00h
  7634. Return: AX = file mode bits (see #3214)
  7635. Note:    MW386 does not support file modes, and always returns AX=001Fh
  7636. SeeAlso: AH=26h,AH=26h/CL=06h
  7637.  
  7638. Bitfields for Alloy file mode bits:
  7639. Bit(s)    Description    (Table 3214)
  7640.  0    directory protection enabled
  7641.  1    extended open enabled
  7642.  2    flush on every disk write
  7643.  3    flush on every disk write in locked interval
  7644.  4    flush on reads from simultaneously opened file
  7645. --------N-7F26-------------------------------
  7646. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  7647.     AH = 26h
  7648.     CL = check type to set/reset
  7649.         01h directory protection
  7650.         02h extended open
  7651.         03h flush on every disk write
  7652.         04h flush on disk write if any lock set during write
  7653.         05h flush on all reads if file written
  7654.     AL = new state (00h off, 01h on)
  7655. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  7656. --------N-7F26--CL06-------------------------
  7657. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  7658.     AH = 26h
  7659.     CL = 06h
  7660. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  7661. SeeAlso: AH=26h/CL=00h
  7662. --------N-7F30-------------------------------
  7663. INT 7F - Alloy MW386 - GET PORT INFORMATION
  7664.     AH = 30h
  7665.     CX = MW386 port number
  7666. Return: AL = result
  7667.         FFh if port not found
  7668.         else driver unit number
  7669.         BL = port mode
  7670.         BH = port type
  7671.             02h remote
  7672.         DH = owner's machine ID
  7673.         DL = owner's user ID
  7674. SeeAlso: INT 17/AH=8Bh
  7675. --------N-7F31-------------------------------
  7676. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  7677.     AH = 31h
  7678.     ???
  7679. Return: ???
  7680. --------N-7F37-------------------------------
  7681. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  7682.     AH = 37h
  7683. Return: ES:AX -> semaphore table
  7684. --------N-7F37-------------------------------
  7685. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  7686.     AH = 37h
  7687.     DS:DX -> ASCIZ string to display
  7688. Note:    if the string is empty, a terminal update will be forced
  7689. --------N-7F38-------------------------------
  7690. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  7691.     AH = 38h
  7692.     AL = new terminal driver number
  7693.         FFh dummy driver
  7694.         FEh current driver
  7695.         FDh load new driver
  7696.         DS:SI -> new driver
  7697. SeeAlso: AH=39h
  7698. --------N-7F39-------------------------------
  7699. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  7700.     AH = 39h
  7701.     AL = new terminal driver number
  7702.         FFh dummy driver
  7703.         FEh current driver
  7704.         FDh load new driver
  7705.         DS:SI -> new driver
  7706.     DL = user number (FFh = caller)
  7707.     DH = machine number if DL <> FFh
  7708. Return: CF set if invalid user number
  7709.     CF clear if successful
  7710. Notes:    only available to supervisors
  7711.     the new driver number will not take effect until the user is rebooted
  7712. SeeAlso: AH=38h
  7713. --------N-7F3A-------------------------------
  7714. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  7715.     AH = 3Ah
  7716.     DL = user number (FFh = caller)
  7717.     DH = machine number
  7718. Return: CF clear if successful
  7719.         AH = terminal driver number
  7720.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  7721.         CL = parity (00h none, 01h even, 02h odd)
  7722.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  7723.     CF set if invalid user number
  7724. SeeAlso: AH=3Bh
  7725. --------N-7F3B-------------------------------
  7726. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  7727.     AH = 3Bh
  7728.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  7729.     CL = parity (00h none, 01h even, 02h odd)
  7730.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  7731.     DL = user number (FFh = caller)
  7732.     DH = machine number for user
  7733. Return: CF set if invalid user number
  7734. Notes:    only available to supervisors
  7735.     the new parameters will take effect immediately if the user's terminal
  7736.       has not been started, else AH=3Dh must be called to post the changes
  7737. SeeAlso: AH=3Ah,AH=3Dh
  7738. --------N-7F3C-------------------------------
  7739. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  7740.     AH = 3Ch
  7741.     AL = new state (00h disabled, 01h enabled)
  7742.     DL = user number (FFh = caller)
  7743.     DH = machine number for user
  7744. Return: CF set if invalid user number
  7745. Note:    only available to supervisors
  7746. SeeAlso: AH=3Dh
  7747. --------N-7F3D-------------------------------
  7748. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  7749.     AH = 3Dh
  7750. Note:    should be called whenever a program changes the terminal type or its
  7751.       parameters
  7752. SeeAlso: AH=3Bh
  7753. --------N-7F41-------------------------------
  7754. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  7755.     AH = 41h
  7756.     AL = user ID
  7757.     DS:DX -> ASCIZ filename
  7758. Return: AL = status (see #3215)
  7759. Note:    requests exclusive read/write access to file
  7760. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  7761.  
  7762. (Table 3215)
  7763. Values for Alloy function status:
  7764.  00h    successful
  7765.  01h    invalid function
  7766.  02h    already locked
  7767.  03h    unable to lock
  7768.  04h    lock table full or semaphore space exhausted
  7769. --------N-7F41-------------------------------
  7770. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  7771.     AH = 41h
  7772.     AL = user ID
  7773.     DS:DX -> ASCIZ semaphore name
  7774. Return: AL = status (see #3215)
  7775. SeeAlso: AH=00h,AH=42h"MW386"
  7776. --------s-7F4150BHC1-------------------------
  7777. INT 7F U - Voyetra - AAPISG - API
  7778.     AX = 4150h ('AP')
  7779.     BH = C1h
  7780.     BL = function (00h-13h)
  7781.         00h initialize (fails except first time called)
  7782.     ???
  7783. Return: AX = status???
  7784.         0000h successful
  7785.         0001h failed
  7786. Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
  7787. BUG:    the function range check uses JL instead of JB, so it will cause a
  7788.       crash if BL >= 80h on entry
  7789. SeeAlso: AX=4331h,AX=564Dh,AX=5658h
  7790. --------N-7F42-------------------------------
  7791. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  7792.     AH = 42h
  7793.     AL = user ID
  7794.     DS:DX -> ASCIZ filename
  7795. Return: AL = status (see #3215)
  7796. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  7797. --------N-7F42-------------------------------
  7798. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  7799.     AH = 42h
  7800.     AL = user ID
  7801.     DS:DX -> ASCIZ semaphore name
  7802. Return: AL = status
  7803.         00h successful
  7804.         01h invalid function
  7805.         03h unable to unlock semaphore
  7806. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  7807. --------V-7F4321-----------------------------
  7808. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  7809.     AX = 4321h
  7810. Return: AX = 0000h if installed
  7811. Note:    INT 7F is the default, but may be overridden
  7812. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  7813. --------s-7F4331BHC1-------------------------
  7814. INT 7F U - Voyetra - VAPISG - API
  7815.     AX = 4331h ('C1')
  7816.     BH = C1h
  7817.     BL = function (00h-7Ah)
  7818.     ???
  7819. Return: ???
  7820. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  7821.       sound board
  7822. SeeAlso: AX=4150h,AX=564Dh,AX=5658h
  7823. --------N-7F4E-------------------------------
  7824. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  7825.     AH = 4Eh
  7826.     AL = error mode flags
  7827.         bit 0: display critical disk errors
  7828.         bit 1: display sharing errors
  7829.     DX = 4E58h ("NX")
  7830. Return: AL = status
  7831.         00h successful
  7832. SeeAlso: AH=4Fh
  7833. --------N-7F4F-------------------------------
  7834. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  7835.     AH = 4Fh
  7836.     AL = FCB mode
  7837.         02h read/write compatibility
  7838.         42h read/write shared
  7839.     DX = 4E58h ("NX")
  7840. Return: AL = status
  7841.         00h successful
  7842. --------V-7F5555-----------------------------
  7843. INT 7F - TIGA Communications Driver v2.05 - ???
  7844.     AX = 5555h
  7845.     BX = ???
  7846. Return: ???
  7847. SeeAlso: AX=4321h
  7848. --------s-7F564DBHC1-------------------------
  7849. INT 7F U - Voyetra Multimedia Player - VMP.EXE API
  7850.     AX = 564Dh ('VM')
  7851.     BH = C1h
  7852.     BL = function (00h-1Bh)
  7853.         00h ???
  7854.         Return: CF clear
  7855.             AX = 0000h
  7856.     ???
  7857. Return: AX = FFFFh if invalid function
  7858.     ???
  7859. SeeAlso: AX=4331h,AX=5658h
  7860. --------s-7F5658BHC1-------------------------
  7861. INT 7F U - Voyetra - VAPISG - API
  7862.     AX = 5658h ('VX')
  7863.     BH = C1h
  7864.     BL = function (00h-1Bh)
  7865.     ???
  7866. Return: ???
  7867. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  7868.       sound board
  7869. SeeAlso: AX=4331h,AX=564Dh
  7870. --------N-7F81-------------------------------
  7871. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  7872.     AH = 81h
  7873.     AL = user ID
  7874.     DS:DX -> ASCIZ device name
  7875. SeeAlso: AH=82h
  7876. --------N-7F82-------------------------------
  7877. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  7878.     AH = 82h
  7879.     AL = user ID
  7880.     DS:DX -> ASCIZ device name
  7881. SeeAlso: AH=81h
  7882. --------N-7FA0-------------------------------
  7883. INT 7F - Alloy MW386 - GET USER NAME
  7884.     AH = A0h
  7885.     DL = user number (FFh = caller)
  7886.     DH = machine number for user
  7887.     ES:DI -> 17-byte buffer for ASCIZ user name
  7888. Return: CF set if invalid user number
  7889. SeeAlso: AH=03h,AH=A1h
  7890. --------N-7FA1-------------------------------
  7891. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  7892.     AH = A1h
  7893. Return: AL = process number
  7894.     DL = user number
  7895.     DH = machine number
  7896. SeeAlso: AH=03h,AH=A0h,AH=A2h
  7897. --------N-7FA2-------------------------------
  7898. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  7899.     AH = A2h
  7900.     DL = user number (FFh = caller)
  7901.     DH = machine number for user
  7902. Return: CF clear if successful
  7903.         AL = privilege level
  7904.         00h supervisor
  7905.         01h high
  7906.         02h medium
  7907.         03h low
  7908.     CF set if invalid user number
  7909. SeeAlso: AH=A1h,AH=A3h
  7910. --------N-7FA3-------------------------------
  7911. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  7912.     AH = A3h
  7913.     DL = user number
  7914.     DH = machine number for user
  7915. Return: CF clear if successful
  7916.         AL = login state
  7917.         00h never logged in
  7918.         01h currently logged out
  7919.         03h currently logged in
  7920.     CF set if invalid user number or user not active
  7921. SeeAlso: AH=A2h
  7922. --------N-7FA4-------------------------------
  7923. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  7924.     AH = A4h
  7925.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  7926. Return: AL = status
  7927.         00h     accepted
  7928.         else invalid password
  7929. --------N-7FA500-----------------------------
  7930. INT 7F - Alloy MW386 - GET USER STATUS
  7931.     AX = A500h
  7932.     DI = machine number and user number
  7933. Return: CF clear if successful
  7934.         BX = user flags
  7935.         bit 5: allow messages
  7936.         CL = scan code for task manager hotkey
  7937.         CH = scan code for spooler hotkey
  7938.         DL = scan code for task swapper hotkey
  7939.         DH = modifier key status
  7940.     CF set if invalid user number
  7941. SeeAlso: AX=A501h
  7942. Index:    hotkeys;Alloy MW386
  7943. --------N-7FA501-----------------------------
  7944. INT 7F - Alloy MW386 - SET USER STATUS
  7945.     AX = A501h
  7946.     BX = user flags (see AX=A500h)
  7947.     CL = scan code for task manager hotkey
  7948.     CH = scan code for spooler hotkey
  7949.     DL = scan code for task swapper hotkey
  7950.     DH = modifier key status
  7951.     DI = machine number and user number
  7952. Return: CF set if invalid user number
  7953. Note:    must have supervisor privilege to set another user's status
  7954. SeeAlso: AX=A500h
  7955. Index:    hotkeys;Alloy MW386
  7956. --------V-7FABCDBX0000-----------------------
  7957. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  7958.     AX = ABCDh
  7959.     BX = 0000h
  7960. Return: AX = total number of functions available
  7961.     ES:BX -> entry point array (see #3216)
  7962. SeeAlso: AX=0104h,AX=0105h
  7963.  
  7964. (Table 3216)
  7965. Values for 8516 Touch Screen function number:
  7966.  00h    check initialization and reset (see #3217)
  7967.  14h    set user-defined subroutine (see #3218)
  7968. Notes:    each driver function takes two stack parameters using Pascal calling
  7969.       conventions: address of parameter block and address of results buffer
  7970.     all pointers are FAR pointers
  7971.     on return, AX contains the status of the call:
  7972.         AX = 0000h successful
  7973.          0001h invalid input
  7974.          0002h interface error
  7975.          0003h unable to perform function
  7976.  
  7977. Format of 8516 Touch Screen Function 00h parameter block:
  7978. Offset    Size    Description    (Table 3217)
  7979.  00h    WORD    0000h (function number)
  7980. Note:    this function should be called before any other device driver functions
  7981.  
  7982. Format of 8516 Touch Screen Function 00h results buffer:
  7983. Offset    Size    Description    (Table 3218)
  7984.  00h    WORD    touch screen status
  7985.         0000h unavailable
  7986.         0001h uncalibrated
  7987.         FFFFh available
  7988.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  7989. Notes:    the following driver parameters will have been reset to zero:
  7990.       touchdown counter, liftoff counter, position at last touch, position
  7991.       at last lift, int call mask, select on count, select off count,
  7992.       pos select on count, pos select off count.
  7993.     the following driver parameters will have been reset as listed:
  7994.       mouse emulation mode: left on
  7995.       thresholds: 46 on screen, 96 push harder, 80 push release
  7996.       x, y hysteresis: 400
  7997.       data repeat rate: 40/sec
  7998.       select mechanism: push-harder - first-touch
  7999.       coordinate origin: upper left corner
  8000.       filter frequency: medium
  8001.       data block mask: all enabled
  8002.       click lock: on
  8003. --------N-7FB0-------------------------------
  8004. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  8005.     AH = B0h
  8006.     AL = user number
  8007.     DS = code segment
  8008. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  8009.       or INT 7F locking functions
  8010. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  8011. --------N-7FB1--SF00-------------------------
  8012. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  8013.     AH = B1h subfn 00h
  8014.     AL = (bits 7-5) 000
  8015.          (bits 4-0) user ID
  8016. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  8017.       INT 7F locking functions
  8018. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  8019. --------N-7FB2--SF01-------------------------
  8020. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  8021.     AH = B2h subfn 01h
  8022.     AL = (bits 7-5) 001
  8023.          (bits 4-0) user ID
  8024. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  8025. --------N-7FB3--SF02-------------------------
  8026. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  8027.     AH = B3h subfn 02h
  8028.     AL = (bits 7-5) 010
  8029.          (bits 4-0) user ID
  8030. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  8031. --------N-7FB4-------------------------------
  8032. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  8033.     AH = B4h
  8034.     AL = user ID
  8035. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  8036. --------N-7FC3-------------------------------
  8037. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  8038.     AH = C3h
  8039.     AL = byte to write
  8040. Return: CF clear if successful
  8041.     CF set on error
  8042. SeeAlso: AH=C6h
  8043. --------N-7FC5-------------------------------
  8044. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  8045.     AH = C5h
  8046.     AL = new console mode
  8047.         00h keyboard indirect
  8048.         01h keyboard direct
  8049.         02h data handshake enforced
  8050.         03h no data handshake
  8051. Return: CF clear if successful
  8052.         AL = prior console mode
  8053.     CF set on error (caller is not remote user)
  8054. Note:    modes 2 and 3 may be used for input through the console port; no video
  8055.       output should be performed in these modes
  8056. --------N-7FC6-------------------------------
  8057. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  8058.     AH = C6h
  8059.     AL = byte to write
  8060. Return: CF clear if successful
  8061.     CF set on error (caller is not remote user)
  8062. Note:    any terminal driver data translation will be bypassed
  8063. SeeAlso: AH=C3h,AH=C7h
  8064. --------N-7FC7-------------------------------
  8065. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  8066.     AH = C7h
  8067. Return: CF clear if successful
  8068.         AL = byte read
  8069.     CF set on error (no data available or caller is not remote user)
  8070. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  8071. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  8072. --------N-7FC8-------------------------------
  8073. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  8074.     AH = C8h
  8075.     AL = maximum bytes to read
  8076.     ES:DI -> buffer for console data
  8077. Return: CF clear if successful
  8078.         CX = number of bytes read
  8079.     CF set on error (caller is not remote user)
  8080. SeeAlso: AH=C7h
  8081. --------N-7FCF-------------------------------
  8082. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  8083.     AH = CFh
  8084.     DS:DX -> ASCIZ string containing user number to be reset
  8085. SeeAlso: AH=D6h
  8086. --------N-7FD6-------------------------------
  8087. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  8088.     AH = D6h
  8089.     DS:DX -> reset packet (see #3219)
  8090. Return: never if successful
  8091. Note:    all users will be shut down immediately if successful
  8092. SeeAlso: AH=CFh
  8093.  
  8094. Format of Alloy MW386 reset packet:
  8095. Offset    Size    Description    (Table 3219)
  8096.  00h    DWORD    reset code (60606060h)
  8097.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  8098. --------N-7FD7-------------------------------
  8099. INT 7F - Alloy MW386 - POST EVENT
  8100.     AH = D7h
  8101.     AL = user number (if local event)
  8102.     DX = event number
  8103. --------N-7FD8-------------------------------
  8104. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  8105.     AH = D8h
  8106. Return: CF set on error
  8107. Note:    forces all disk buffers to be written out immediately
  8108. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  8109. --------N-7FDB-------------------------------
  8110. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  8111.     AH = DBh
  8112. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  8113. --------N-7FE0-------------------------------
  8114. INT 7F - Alloy MW386 - CREATE DOS TASK
  8115.     AH = E0h
  8116.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  8117.     DS:DX -> ASCIZ task name (max 16 bytes)
  8118. Return: CF clear if successful
  8119.         AL = task create ID
  8120.     CF set on error
  8121. Note:    only foreground DOS tasks can use this function
  8122. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  8123. --------N-7FE1-------------------------------
  8124. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  8125.     AH = E1h
  8126.     AL = create ID (from AH=E0h)
  8127. Return: AL = DOS process number
  8128.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  8129. Note:    this function should not be called immediately after creating a new
  8130.       DOS task, since the new task is being initialized by a concurrent
  8131.       process
  8132. SeeAlso: AH=E0h,AH=E2h
  8133. --------N-7FE2-------------------------------
  8134. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  8135.     AH = E2h
  8136.     AL = DOS process number (from AH=E1h)
  8137. Return: CF set on error (invalid process number or caller not foreground task)
  8138. Notes:    specified task becomes the foreground task and current task is placed
  8139.       in the background
  8140.     may only be called by a foreground task
  8141. SeeAlso: AH=E0h,AH=E1h
  8142. --------N-7FE3-------------------------------
  8143. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  8144.     AH = E3h
  8145.     DS:DX -> ASCIZ task name
  8146. ---v1.x---
  8147.     AL = user number
  8148. ---v2+---
  8149.     BH = user number
  8150.     BL = task number
  8151. Return: CF clear if successful
  8152.     CF set on error (invalid process number)
  8153. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  8154. --------N-7FE4-------------------------------
  8155. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  8156.     AH = E4h
  8157.     ES:DI -> buffer for task name
  8158. ---v1.x---
  8159.     AL = user number
  8160. ---v2+---
  8161.     BH = user number
  8162.     BL = task number
  8163. Return: CF clear if successful
  8164.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  8165.         DX = task flags
  8166.         bit 7: MS-DOS process
  8167.         ES:DI buffer filled
  8168.     CF set on error (invalid process number)
  8169. SeeAlso: AH=E3h,AH=E5h
  8170. --------N-7FE5-------------------------------
  8171. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  8172.     AH = E5h
  8173.     DS:DX -> ASCIZ task name
  8174.     BH = user number
  8175. Return: CF clear if successful
  8176.         AL = DOS process number
  8177.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  8178.     CF set on error (no match for name)
  8179. SeeAlso: AH=E3h,AH=E4h
  8180. --------N-7FE6-------------------------------
  8181. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  8182.     AH = E6h
  8183. Return: AX = number of processes available to current user
  8184. SeeAlso: AH=E0h
  8185. --------N-7FE7-------------------------------
  8186. INT 7F - Alloy MW386 - REMOVE DOS TASK
  8187.     AH = E7h
  8188.     AL = DOS process number
  8189. Return: CF clear if successful
  8190.     CF set on error (invalid process number or first process)
  8191. Note:    can only be called by a foreground task
  8192. SeeAlso: AH=E0h
  8193. --------N-7FE8-------------------------------
  8194. INT 7F - Alloy MW386 - DOS TASK DELAY
  8195.     AH = E8h
  8196.     CX = delay time in milliseconds
  8197. Note:    a delay of 0 may be used to surrender the current time slice
  8198. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  8199. SeeAlso: INT 2F/AX=1680h
  8200. --------N-7FF0-------------------------------
  8201. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  8202.     AH = F0h
  8203.     AL = group number
  8204.     DS:DX -> ASCIZ directory name
  8205. Return: CF clear if successful
  8206.         AX = status
  8207.         0002h directory not found
  8208.         0003h directory not found
  8209.         0005h directory in use, cannot be restricted
  8210.         02xxh restricted to group xxh
  8211.     CF set on error
  8212. Note:    the restriction on the directory may be removed by calling this
  8213.       function with group 0, then using AH=F1h to assign the directory to
  8214.       group 0
  8215. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  8216. --------N-7FF1-------------------------------
  8217. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  8218.     AH = F1h
  8219.     AL = group number
  8220.     DS:DX -> ASCIZ directory name
  8221. Notes:    performs permanent assignment to a group; no immediate action is taken
  8222.       unless the directory has been restricted with AH=F0h
  8223.     may be used to restrict a nonexistent directory
  8224. SeeAlso: AH=F0h
  8225. --------N-7FF2-------------------------------
  8226. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  8227.     AH = F2h
  8228.     CX = entry number
  8229.     ES:DI -> 64-byte buffer
  8230. Return: CF clear if successful
  8231.         buffer filled with 63-byte directory info and 1-byte group number
  8232.     CF set on error (invalid entry)
  8233. SeeAlso: AH=F0h,AH=F3h
  8234. --------N-7FF3-------------------------------
  8235. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  8236.     AH = F3h
  8237.     AL = group number
  8238.     CX = entry number
  8239.     ES:DI -> 64-byte buffer
  8240. Return: CF clear if successful
  8241.         CX = next entry number
  8242.         buffer filled with 63-byte directory info and 1-byte group number
  8243.     CF set on error (no more matching entries)
  8244. Note:    like AH=F2h, but only returns directories belonging to the specified
  8245.       group
  8246. SeeAlso: AH=F2h
  8247. --------N-7FF8-------------------------------
  8248. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  8249.     AH = F8h
  8250.     AL = group number
  8251.     DL = user number
  8252.     DH = machine number (currently 00h)
  8253. Return: CF clear if successful
  8254.     CF set on error (user already in maximum number of groups)
  8255. Note:    each user is allowed eight group assignments
  8256. SeeAlso: AH=F9h,AH=FAh
  8257. --------N-7FF9-------------------------------
  8258. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  8259.     AH = F9h
  8260.     AL = group number
  8261.     DL = user number
  8262.     DH = machine number (currently 00h)
  8263. Return: CF clear if successful
  8264.     CF set if failed
  8265. SeeAlso: AH=F8h,AH=FAh
  8266. --------N-7FFA-------------------------------
  8267. INT 7F - Alloy MW386 - GET USER GROUP LIST
  8268.     AH = FAh
  8269.     DL = user number
  8270.     DH = machine number (currently 00h)
  8271.     ES:DI -> 16-byte buffer for group list
  8272. Return: CX = number of groups
  8273.     ES:DI buffer filled with group numbers
  8274. SeeAlso: AH=F8h,AH=F9h
  8275. --------N-7FFB-------------------------------
  8276. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  8277.     AH = FBh
  8278.     CL = group number
  8279.     ES:DI -> ASCIZ group name (max 17 bytes)
  8280. SeeAlso: AH=FCh
  8281. --------N-7FFC-------------------------------
  8282. INT 7F - Alloy MW386 - GET GROUP NAME
  8283.     AH = FCh
  8284.     CL = group number
  8285.     ES:DI -> 17-byte buffer for ASCIZ name
  8286. Return: ES:DI buffer filled
  8287. Note:    if the group has not been named, "(unnamed)" is returned
  8288. SeeAlso: AH=FBh
  8289. --------!---Section--------------------------
  8290.